Use the new snazzy mother-of-all-gtk-doc-makefiles.
authorOwen Taylor <otaylor@redhat.com>
Mon, 12 Feb 2001 17:50:13 +0000 (17:50 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Mon, 12 Feb 2001 17:50:13 +0000 (17:50 +0000)
Sun Feb 11 22:16:34 2001  Owen Taylor  <otaylor@redhat.com>

* */Makefile.am: Use the new snazzy mother-of-all-gtk-doc-makefiles.

* gdk/tmpl/* gdk-pixbuf/tmpl/*: Recover a bunch of docs that were
lost at one point.

25 files changed:
docs/reference/ChangeLog
docs/reference/gdk-pixbuf/Makefile.am
docs/reference/gdk-pixbuf/tmpl/animation.sgml
docs/reference/gdk-pixbuf/tmpl/creating.sgml
docs/reference/gdk-pixbuf/tmpl/file-loading.sgml
docs/reference/gdk-pixbuf/tmpl/gdk-pixbuf-unused.sgml
docs/reference/gdk-pixbuf/tmpl/gdk-pixbuf-xlib-init.sgml
docs/reference/gdk-pixbuf/tmpl/gdk-pixbuf.sgml
docs/reference/gdk-pixbuf/tmpl/initialization_versions.sgml
docs/reference/gdk-pixbuf/tmpl/refcounting.sgml
docs/reference/gdk-pixbuf/tmpl/scaling.sgml
docs/reference/gdk-pixbuf/tmpl/util.sgml
docs/reference/gdk/Makefile.am
docs/reference/gdk/tmpl/colors.sgml
docs/reference/gdk/tmpl/drawing.sgml
docs/reference/gdk/tmpl/fonts.sgml
docs/reference/gdk/tmpl/gcs.sgml
docs/reference/gdk/tmpl/gdk-unused.sgml
docs/reference/gdk/tmpl/images.sgml
docs/reference/gdk/tmpl/regions.sgml
docs/reference/gdk/tmpl/rgb.sgml
docs/reference/gdk/tmpl/windows.sgml
docs/reference/gtk/Makefile.am
docs/reference/gtk/tmpl/gtk-unused.sgml
docs/reference/gtk/tmpl/gtktreeviewcolumn.sgml

index 17d6f702cc6b537f8424107b674cb686b5c183b2..8d9c0d7d3c506c669a57f566b3c88ceb46cad7bc 100644 (file)
@@ -1,3 +1,10 @@
+Sun Feb 11 22:16:34 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * */Makefile.am: Use the new snazzy mother-of-all-gtk-doc-makefiles.
+
+       * gdk/tmpl/* gdk-pixbuf/tmpl/*: Recover a bunch of docs that were 
+       lost at one point.
+
 2001-02-08  Havoc Pennington  <hp@pobox.com>
 
        * gtk/windows.sgml: windows (file is blank)
index 9ac1083f77fa7d44cb123354acff58d44d9cdb47..00a9e48118785622a952dd4a865a88ebe7b258d0 100644 (file)
@@ -6,40 +6,34 @@ DOC_MODULE=gdk-pixbuf
 # The top-level SGML file.
 DOC_MAIN_SGML_FILE=gdk-pixbuf.sgml
 
-# The directory containing the source code (if it contains documentation).
-DOC_SOURCE_DIR=$(GDK_PIXBUF_DIR)/gdk-pixbuf
-SECOND_DOC_SOURCE_DIR=$(top_srcdir)/contrib/gdk-pixbuf-xlib
+# The directory containing the source code. Relative to $(srcdir)
+DOC_SOURCE_DIR=../../../gdk-pixbuf
+
+# Extra options to supply to gtkdoc-scan
+SCAN_OPTIONS=--source-dir=../../../contrib/gdk-pixbuf-xlib
+
+# Extra options to supply to gtkdoc-mkdb
+MKDB_OPTIONS=--source-dir=../../../contrib/gdk-pixbuf-xlib
 
 # Extra options to supply to gtkdoc-fixref
 FIXXREF_OPTIONS=
 
+# Used for dependencies
+HFILE_GLOB=$(top_srcdir)/gdk-pixbuf/*.h $(top_srcdir)/contrib/gdk-pixbuf-xlib/*.h
+CFILE_GLOB=$(top_srcdir)/gdk-pixbuf/*.c $(top_srcdir)/contrib/gdk-pixbuf-xlib/*.c
+
 # Header files to ignore when scanning
-IGNORE_HFILES=pixops.h pixops-internal.h gdk-pixbuf-xlib-private.h gdk-pixbuf-i18n.h gdk-pixbuf-private.h
+IGNORE_HFILES=                         \
+       pixops                          \
+       gdk-pixbuf-xlib-private.h       \
+       gdk-pixbuf-i18n.h               \
+       gdk-pixbuf-private.h
 
 # Extra files to add when scanning
-EXTRA_HFILES=                  \
-       $(top_srcdir)/gtk/gdk-pixbuf-loader.h
-
-# CFLAGS and LDFLAGS for compiling scan program
-CFLAGS=
-LDFLAGS=
-
-tmpl_sources =                                 \
-       tmpl/animation.sgml                     \
-       tmpl/creating.sgml                      \
-       tmpl/file-loading.sgml                  \
-       tmpl/gdk-pixbuf-loader.sgml             \
-       tmpl/gdk-pixbuf-unused.sgml             \
-       tmpl/gdk-pixbuf.sgml                    \
-       tmpl/initialization_versions.sgml       \
-       tmpl/module_interface.sgml              \
-       tmpl/refcounting.sgml                   \
-       tmpl/scaling.sgml                       \
-       tmpl/util.sgml                          \
-        tmpl/gdk-pixbuf-xlib-from-drawables.sgml        \
-        tmpl/gdk-pixbuf-xlib-init.sgml                  \
-        tmpl/gdk-pixbuf-xlib-rendering.sgml             \
-        tmpl/gdk-pixbuf-xlib-rgb.sgml
+EXTRA_HFILES=
+
+# Images to copy into HTML directory
+HTML_IMAGES = 
 
 # Extra SGML files that are included by DOC_MAIN_SGML_FILE
 content_files =                                \
@@ -47,6 +41,30 @@ content_files =                              \
        gdk-pixbuf.sgml                 \
        porting-from-imlib.sgml
 
+# Other files to distribute
+extra_files =
+
+# CFLAGS and LDFLAGS for compiling scan program. Only needed
+# if $(DOC_MODULE).types is non-empty.
+GTKDOC_CFLAGS = @STRIP_BEGIN@                          \
+       @CFLAGS@                                        \
+       -I$(top_srcdir)                                 \
+       @GLIB_CFLAGS@                                   \
+       @more_cflags@                                   \
+@STRIP_END@
+
+GTKDOC_LIBS = @STRIP_BEGIN@                            \
+       $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-1.3.la \
+       @more_ldflags@                                  \
+       @more_libs@                                     \
+       @GLIB_LIBS@                                     \
+       -lm                                             \
+@STRIP_END@
+
+GTKDOC_CC=$(LIBTOOL) --mode=compile $(CC)
+GTKDOC_LD=$(LIBTOOL) --mode=link $(CC)
+
+
 ####################################
 # Everything below here is generic #
 ####################################
@@ -54,47 +72,76 @@ content_files =                             \
 TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
 
 EXTRA_DIST =                           \
-       $(DOC_MODULE).types             \
-       $(DOC_MAIN_SGML_FILE)           \
        $(content_files)                \
+       $(extra_files)                  \
+       $(HTML_IMAGES)                  \
+       $(DOC_MAIN_SGML_FILE)           \
+       $(DOC_MODULE).types             \
        $(DOC_MODULE)-sections.txt      \
        $(DOC_MODULE)-overrides.txt
 
+DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp
+
 if ENABLE_GTK_DOC
-all-local: html/index.html
+all-local: html-build.stamp
+
+SCANOBJ_FILES =                \
+       $(DOC_MODULE).args      \
+       $(DOC_MODULE).hierarchy \
+       $(DOC_MODULE).signal
+
+scan-build.stamp: $(HFILE_GLOB)
+       @echo '*** Scanning header files ***'
+       cd $(srcdir) && ( \
+       if grep -l '^.+$$' $(DOC_MODULE).types > /dev/null ; then \
+           CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scangobj --module=$(DOC_MODULE) ; \
+       else \
+           for i in $(SCANOBJ_FILES) ; do \
+               test -f $$i || touch $$i ; \
+           done \
+       fi )
+       cd $(srcdir) && \
+         gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES)
+       touch scan-build.stamp
+
+check_scan:
+       $(MAKE) scan-build.stamp
 
-$(DOC_MODULE)-decl.txt: 
-       $(MAKE) scan
+$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES): check_scan
 
-$(tmpl_sources): $(DOC_MODULE)-decl.txt $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
-       $(MAKE) templates
+tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
+       @echo '*** Rebuilding template files ***'
+       cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE)
+       touch tmpl-build.stamp
 
-sgml/$(DOC_MODULE)-doc.bottom: $(tmpl_sources) $(DOC_MODULE)-decl.txt
-       $(MAKE) sgml
+check_templates: 
+       $(MAKE) tmpl-build.stamp
 
-html/index.html: sgml/$(DOC_MODULE)-doc.bottom $(DOC_MAIN_SGML_FILE) $(content_files)
-       $(MAKE) html
-endif
+tmpl.stamp: check_templates
 
-scan:
-       -(cd $(srcdir) \
-       && gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --source-dir=$(SECOND_DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(EXTRA_HFILES))
+sgml-build.stamp: tmpl.stamp $(CFILE_GLOB)
+       @echo '*** Building SGML ***'
+       cd $(srcdir) && \
+       gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) $(MKDB_OPTIONS)
+       touch sgml-build.stamp
 
-templates: 
-       cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE)
+check_sgml:
+       $(MAKE) sgml-build.stamp
 
-sgml:
-       cd $(srcdir) \
-       && gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --source-dir=$(SECOND_DOC_SOURCE_DIR)
+sgml.stamp: check_sgml
 
-html:
+html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE)
+       @echo '*** Building HTML ***'
        test -d $(srcdir)/html || mkdir $(srcdir)/html
-       -cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
+       cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
+       test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html )
        @echo '-- Fixing Crossreferences' 
        cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
+       touch html-build.stamp
+endif
 
 clean-local:
-       rm -f *~ *.bak *.signals *-unused.txt
+       rm -f *~ *.bak $(SCANOBJ_FILES) *-unused.txt $(DOC_STAMPS) $(srcdir)/sgml.stamp 
 
 maintainer-clean-local: clean
        cd $(srcdir) && rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
@@ -120,17 +167,22 @@ if ENABLE_GTK_DOC
 dist-check-gtkdoc:
 else
 dist-check-gtkdoc:
-       @echo "*** gtk-doc must be installed and enabled in order to make dist
+       @echo "*** gtk-doc must be installed and enabled in order to make dist"
        @false
 endif
 
-dist-hook: dist-check-gtkdoc
-       mkdir $(distdir)/html
-       mkdir $(distdir)/sgml
+dist-hook: dist-check-gtkdoc dist-hook-local
        mkdir $(distdir)/tmpl
-       -cp $(srcdir)/html/*.html $(srcdir)/html/*.css $(srcdir)/html/index.sgml $(distdir)/html
+       mkdir $(distdir)/sgml
+       mkdir $(distdir)/html
        -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
        -cp $(srcdir)/sgml/*.sgml $(distdir)/sgml
        -cp $(srcdir)/sgml/*.bottom $(srcdir)/sgml/*.top $(distdir)/sgml
+       -cp $(srcdir)/html/index.sgml $(distdir)/html
+       -cp $(srcdir)/html/*.html $(srcdir)/html/*.css $(distdir)/html
+       for i in $(HTML_IMAGES) ; do          \
+         cp $(srcdir)/$$i $(distdir)/html ;  \
+        done
+
+.PHONY : check_sgml check_templates check_scan dist-hook-local
 
-.PHONY : html sgml templates scan
index 8253cb491d72ae6bf7e3d3e01715f8b83f154f22..c8bff9b017cfc6fb46c4595234dcd7a9630173fc 100644 (file)
@@ -1,38 +1,52 @@
 <!-- ##### SECTION Title ##### -->
-animation
+Animations
 
 <!-- ##### SECTION Short_Description ##### -->
-
+Animations as multi-frame structures.
 
 <!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
+  <para>
+    The &gdk-pixbuf; library provides a simple mechanism to load and
+    represent animations, primarily animated GIF files.  Animations
+    are represented as lists of #GdkPixbufFrame structures.  Each
+    frame structure contains a #GdkPixbuf structure and information
+    about the frame's overlay mode and duration.
+  </para>
 
 <!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
+  <para>
+    #GdkPixbufLoader
+  </para>
 
 <!-- ##### ENUM GdkPixbufFrameAction ##### -->
-<para>
-
-</para>
-
-@GDK_PIXBUF_FRAME_RETAIN: 
-@GDK_PIXBUF_FRAME_DISPOSE: 
-@GDK_PIXBUF_FRAME_REVERT: 
+  <para>
+    Each animation frame can have several things happen to it when the
+    next frame is displayed.  The #GdkPixbufFrameAction determines
+    this.  These are essentially the overlay modes supported by GIF
+    animations.
+  </para>
+
+@GDK_PIXBUF_FRAME_RETAIN: The previous image should remain displayed,
+and will potentially be occluded by the new frame.
+@GDK_PIXBUF_FRAME_DISPOSE: The animation will be reverted to the state
+before the frame was shown.
+@GDK_PIXBUF_FRAME_REVERT: The animation will be reverted to the first
+frame.
 
 <!-- ##### STRUCT GdkPixbufFrame ##### -->
-<para>
-
-</para>
+  <para>
+    This structure describes a frame in a #GdkPixbufAnimation.  Each
+    frame consists of a #GdkPixbuf, an offset of the frame within the
+    animation's bounding box, a duration, and an overlay mode or
+    action.
+  </para>
 
 
 <!-- ##### STRUCT GdkPixbufAnimation ##### -->
-<para>
-
-</para>
+  <para>
+    This structure describes an animation, which is represented as a
+    list of #GdkPixbufFrame structures.
+  </para>
 
 
 <!-- ##### FUNCTION gdk_pixbuf_animation_new_from_file ##### -->
@@ -140,6 +154,11 @@ animation
 </para>
 
 @frame: 
-@Returns: 
+@Returns: <!--
+Local variables:
+mode: sgml
+sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
+End:
+-->
 
 
index f3d9f9aafde0fdb2509561c058a7faf26eb03823..0bbce5405a9051c6990701b10780d93c0ba5b556 100644 (file)
@@ -1,18 +1,47 @@
 <!-- ##### SECTION Title ##### -->
-creating
+Image Data in Memory
 
 <!-- ##### SECTION Short_Description ##### -->
-
+Creating a pixbuf from image data that is already in memory.
 
 <!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
+  <para>
+    The most basic way to create a pixbuf is to wrap an existing pixel
+    buffer with a #GdkPixbuf structure.  You can use the
+    gdk_pixbuf_new_from_data() function to do this You need to specify
+    the destroy notification function that will be called when the
+    data buffer needs to be freed; this will happen when a #GdkPixbuf
+    is finalized by the reference counting functions If you have a
+    chunk of static data compiled into your application, you can pass
+    in #NULL as the destroy notification function so that the data
+    will not be freed.
+  </para>
+
+  <para>
+    The gdk_pixbuf_new() function can be used as a convenience to
+    create a pixbuf with an empty buffer.  This is equivalent to
+    allocating a data buffer using malloc() and then wrapping it with
+    gdk_pixbuf_new_from_data().  The gdk_pixbuf_new() function will
+    compute an optimal rowstride so that rendering can be performed
+    with an efficient algorithm.
+  </para>
+
+  <para>
+    As a special case, you can use the gdk_pixbuf_new_from_xpm_data()
+    function to create a pixbuf from inline XPM image data.
+  </para>
+
+  <para>
+    You can also copy an existing pixbuf with the gdk_pixbuf_copy()
+    function.  This is not the same as just doing a gdk_pixbuf_ref()
+    on the old pixbuf; the copy function will actually duplicate the
+    pixel data in memory and create a new #GdkPixbuf structure for it.
+  </para>
 
 <!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
+  <para>
+    gdk_pixbuf_finalize().
+  </para>
 
 <!-- ##### FUNCTION gdk_pixbuf_new ##### -->
 <para>
@@ -84,8 +113,11 @@ creating
 </para>
 
 @pixbuf: 
-@Returns: 
-<!-- # Unused Parameters # -->
-@src: 
+@Returns: <!--
+Local variables:
+mode: sgml
+sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
+End:
+-->
 
 
index 125cf84c480795672e0a84cc5f2493b707c481d0..7025c7edd54a516e175535e0b6225d87e5e85239 100644 (file)
@@ -1,18 +1,29 @@
 <!-- ##### SECTION Title ##### -->
-file-loading
+File Loading
 
 <!-- ##### SECTION Short_Description ##### -->
-
+Loading a pixbuf from a file.
 
 <!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
+  <para>
+    The &gdk-pixbuf; library provides a simple mechanism for loading
+    an image from a file in synchronous fashion.  This means that the
+    library takes control of the application while the file is being
+    loaded; from the user's point of view, the application will block
+    until the image is done loading.
+  </para>
+
+  <para>
+    This interface can be used by applications in which blocking is
+    acceptable while an image is being loaded.  It can also be used to
+    load small images in general.  Applications that need progressive
+    loading can use the #GdkPixbufLoader functionality instead.
+  </para>
 
 <!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
+  <para>
+    #GdkPixbufLoader.
+  </para>
 
 <!-- ##### FUNCTION gdk_pixbuf_new_from_file ##### -->
 <para>
@@ -21,6 +32,11 @@ file-loading
 
 @filename: 
 @error: 
-@Returns: 
+@Returns: <!--
+Local variables:
+mode: sgml
+sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
+End:
+-->
 
 
index ff0572856966c21ac65cd4279511725cf02cd6fc..b8af403062976cdbef898b2146f7280a2feb63f9 100644 (file)
-<!-- ##### SECTION ./tmpl/from-drawables.sgml:Title ##### -->
-Drawables to Pixbufs
+<!-- ##### SECTION ./tmpl/animation.sgml:Long_Description ##### -->
+  <para>
+    The &gdk-pixbuf; library provides a simple mechanism to load and
+    represent animations, primarily animated GIF files.  Animations
+    are represented as lists of #GdkPixbufFrame structures.  Each
+    frame structure contains a #GdkPixbuf structure and information
+    about the frame's overlay mode and duration.
+  </para>
 
 
-<!-- ##### USER_FUNCTION GdkPixbufLastUnref ##### -->
+<!-- ##### SECTION ./tmpl/animation.sgml:See_Also ##### -->
   <para>
-    A function of this type can be used to override the default
-    operation when a pixbuf loses its last reference, i.e. when
-    gdk_pixbuf_unref() is called on a #GdkPixbuf structure that has a
-    reference count of 1.  This function should determine whether to
-    finalize the pixbuf by calling gdk_pixbuf_finalize(), or whether
-    to just resume normal execution.  The last unref handler for a
-    #GdkPixbuf can be set using the
-    gdk_pixbuf_set_last_unref_handler() function.  By default, pixbufs
-    will be finalized automatically if no last unref handler has been
-    defined.
+    #GdkPixbufLoader
   </para>
 
-@pixbuf: The pixbuf that is losing its last reference.
-@data: User closure data.
 
-<!-- ##### FUNCTION gdk_pixbuf_frame_copy ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/animation.sgml:Short_Description ##### -->
+Animations as multi-frame structures.
 
-</para>
 
-@src: 
-@Returns: 
-@frame: 
+<!-- ##### SECTION ./tmpl/animation.sgml:Title ##### -->
+Animations
 
-<!-- ##### SECTION ./tmpl/rendering.sgml:See_Also ##### -->
+
+<!-- ##### SECTION ./tmpl/from-drawables.sgml:Long_Description ##### -->
   <para>
-    GdkRGB
+    The functions in this section allow you to take the image data
+    from a GDK drawable and dump it into a #GdkPixbuf.  This can be
+    used for screenshots and other special effects.  Note that these
+    operations can be expensive, since the image data has to be
+    transferred from the X server to the client program and converted.
   </para>
 
 
-<!-- ##### SECTION ./tmpl/xlib-from-drawables.sgml:Title ##### -->
-X Drawables to Pixbufs
-
+<!-- ##### SECTION ./tmpl/from-drawables.sgml:See_Also ##### -->
+  <para>
+    gdk_image_get().
+  </para>
 
-<!-- ##### FUNCTION gdk_pixbuf_render_pixmap_and_mask ##### -->
-<para>
 
-</para>
+<!-- ##### SECTION ./tmpl/from-drawables.sgml:Short_Description ##### -->
+Getting parts of a drawable's image data into a pixbuf.
 
-@pixbuf: 
-@pixmap_return: 
-@mask_return: 
-@alpha_threshold: <!--
-Local variables:
-mode: sgml
-sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
-End:
--->
 
-<!-- ##### ARG GnomeCanvasPixbuf:width ##### -->
-  <para>
-    Indicates the width the pixbuf will be scaled to.  This argument
-    will only be used if the <link
-    linkend="GnomeCanvasPixbuf--width-set">width_set</link> argument
-    is %TRUE.  If the <link
-    linkend="GnomeCanvasPixbuf--width-in-pixels">width_in_pixels</link>
-    argument is %FALSE, the width will be taken to be in canvas units,
-    and thus will be scaled along with the canvas item's affine
-    transformation.  If width_in_pixels is %TRUE, the width will be
-    taken to be in pixels, and will visually remain a constant size
-    even if the item's affine transformation changes.
-  </para>
+<!-- ##### SECTION ./tmpl/from-drawables.sgml:Title ##### -->
+Drawables to Pixbufs
 
 
-<!-- ##### ARG GnomeCanvasPixbuf:x-pixels ##### -->
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-io.sgml:Long_Description ##### -->
 <para>
 
 </para>
 
 
-<!-- ##### FUNCTION gdk_pixbuf_render_to_drawable ##### -->
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-io.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@pixbuf: 
-@drawable: 
-@gc: 
-@src_x: 
-@src_y: 
-@dest_x: 
-@dest_y: 
-@width: 
-@height: 
-@dither: 
-@x_dither: 
-@y_dither: 
 
-<!-- ##### FUNCTION gdk_pixbuf_get_from_drawable ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-io.sgml:Short_Description ##### -->
 
-</para>
 
-@dest: 
-@src: 
-@cmap: 
-@src_x: 
-@src_y: 
-@dest_x: 
-@dest_y: 
-@width: 
-@height: 
-@Returns: <!--
-Local variables:
-mode: sgml
-sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
-End:
--->
 
-<!-- ##### ARG GnomeCanvasPixbuf:x ##### -->
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-io.sgml:Title ##### -->
+gdk-pixbuf-io
+
+
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-loader.sgml:Long_Description ##### -->
   <para>
-    Indicates the horizontal translation offset of the pixbuf item's
-    image.  This offset may not actually appear horizontal, since it
-    will be affected by the item's affine transformation.  The default
-    is 0.0.
+    #GdkPixbufLoader provides a way for applications to drive the
+    process of loading an image, by letting them send the image data
+    directly to the loader instead of having the loader read the data
+    from a file.  Applications can use this functionality instead of
+    gdk_pixbuf_new_from_file() when they need to parse image data in
+    small chunks.  For example, it should be used when reading an
+    image from a (potentially) slow network connection, or when
+    loading an extremely large file.
   </para>
 
+  <para>
+    To use #GdkPixbufLoader to load an image, just create a new one,
+    and call gdk_pixbuf_loader_write() to send the data to it.  When
+    done, gdk_pixbuf_loader_close() should be called to end the stream
+    and finalize everything.  The loader will emit two important
+    signals throughout the process.  The first, "<link
+    linkend="GdkPixbufLoader-area-prepared">area_prepared</link>",
+    will be called as soon as the image has enough information to
+    determine the size of the image to be used.  It will pass a
+    @GdkPixbuf in.  If you want to use it, you can simply ref it.  In
+    addition, no actual information will be passed in yet, so the
+    pixbuf can be safely filled with any temporary graphics (or an
+    initial color) as needed.  You can also call the
+    gdk_pixbuf_loader_get_pixbuf() once this signal has been emitted
+    and get the same pixbuf.
+  </para>
 
-<!-- ##### ARG GnomeCanvasPixbuf:y ##### -->
   <para>
-    Indicates the vertical translation offset of the pixbuf item's
-    image.  Works in the same way as the <link
-    linkend="GnomeCanvasPixbuf--x">x</link> argument.  The default is
-    0.0.
+    The other signal, "<link
+    linkend="GdkPixbufLoader-area-updated">area_updated</link>" gets
+    called every time a region is updated.  This way you can update a
+    partially completed image.  Note that you do not know anything
+    about the completeness of an image from the area updated.  For
+    example, in an interlaced image, you need to make several passes
+    before the image is done loading.
   </para>
 
+  <refsect2>
+    <title>Loading an animation</title>
 
-<!-- ##### SECTION ./tmpl/xlib-init.sgml:Short_Description ##### -->
-Initializing the &gdk-pixbuf; Xlib library.
+    <para>
+      Loading an animation is a little more complex then loading an
+      image.  In addition to the above signals, there is also a "<link
+      linkend="GdkPixbufLoader-frame-done">frame_done</link>" signal,
+      as well as an "<link
+      linkend="GdkPixbufLoader-animation-done">animation_done</link>"
+      signal.  The first lets the application know that it is dealing
+      with an animation, instead of a static image.  It also passes a
+      #GdkPixbufFrame in the signal.  As before, if you want to keep
+      the frame, you need to ref it.  Once the first "<link
+      linkend="GdkPixbufLoader-frame-done">frame_done</link>" signal
+      has been emitted, you can call gdk_pixbuf_loader_get_animation()
+      to get the #GdkPixbufAnimation struct.  Each subsequent frame
+      goes through a similar lifecycle.  For example "<link
+      linkend="GdkPixbufLoader-area-prepared">area_prepared</link>" is
+      re-emitted.  Then "<link
+      linkend="GdkPixbufLoader-area-updated">area_updated</link>" is
+      emitted as many times as necessary.  Finally, "<link
+      linkend="GdkPixbufLoader-animation-done">animation_done</link>"
+      is emitted as soon as all frames are done.
+    </para>
+  </refsect2>
 
 
-<!-- ##### SECTION ./tmpl/xlib-from-drawables.sgml:Long_Description ##### -->
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-loader.sgml:See_Also ##### -->
+  <para>
+    gdk_pixbuf_new_from_file()
+  </para>
+
+
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-loader.sgml:Short_Description ##### -->
+Application-driven progressive image loading.
+
+
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-loader.sgml:Title ##### -->
+GdkPixbufLoader
+
+
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-xlib-from-drawables.sgml:Long_Description ##### -->
   <para>
     The functions in this section allow you to take the image data
     from an X drawable and dump it into a #GdkPixbuf.  This can be
@@ -150,62 +161,49 @@ Initializing the &gdk-pixbuf; Xlib library.
   </para>
 
 
-<!-- ##### FUNCTION gdk_pixbuf_new_from_art_pixbuf ##### -->
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-xlib-from-drawables.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@art_pixbuf: 
-@Returns: 
 
-<!-- ##### SECTION ./tmpl/xlib-init.sgml:See_Also ##### -->
-  <para>
-    XlibRGB
-  </para>
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-xlib-from-drawables.sgml:Short_Description ##### -->
+Getting parts of an X drawable's image data into a pixbuf.
 
 
-<!-- ##### SECTION ./tmpl/gnome-canvas-pixbuf.sgml:See_Also ##### -->
-  <para>
-    #GnomeCanvas, #GdkPixbuf
-  </para>
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-xlib-from-drawables.sgml:Title ##### -->
+X Drawables to Pixbufs
 
 
-<!-- ##### ARG GnomeCanvasPixbuf:pixbuf ##### -->
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-xlib-init.sgml:Long_Description ##### -->
   <para>
-    Contains a pointer to a #GdkPixbuf structure that will be used by
-    the pixbuf canvas item as an image source.  When a pixbuf is set
-    its reference count is incremented; if the pixbuf item kept a
-    pointer to another #GdkPixbuf structure, the reference count of
-    this structure will be decremented.  Also, the GdkPixbuf's
-    reference count will automatically be decremented when the
-    #GnomeCanvasPixbuf item is destroyed.  When a pixbuf is queried, a
-    reference count will not be added to the return value; you must do
-    this yourself if you intend to keep the pixbuf structure around.
+    In addition to the normal Gdk-specific functions, the &gdk-pixbuf;
+    package provides a small library that lets Xlib-only applications
+    use #GdkPixbuf structures and render them to X drawables.  The
+    functions in this section are used to initialize the &gdk-pixbuf;
+    Xlib library.  This library must be initialized near the beginning
+    or the program or before calling any of the other &gdk-pixbuf;
+    Xlib functions; it cannot be initialized automatically since
+    Xlib-only applications do not call gdk_rgb_init() like GNOME
+    applications do.
   </para>
 
 
-<!-- ##### ARG GnomeCanvasPixbuf:width-pixels ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/xlib-rgb.sgml:See_Also ##### -->
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-xlib-init.sgml:See_Also ##### -->
   <para>
-    GdkRGB
+    XlibRGB
   </para>
 
 
-<!-- ##### ARG GnomeCanvasPixbuf:x-set ##### -->
-  <para>
-    Determines whether the <link
-    linkend="GnomeCanvasPixbuf--x">x</link> argument is used to
-    translate the pixbuf from its logical origin in item-relative
-    coordinates.
-  </para>
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-xlib-init.sgml:Short_Description ##### -->
+Initializing the &gdk-pixbuf; Xlib library.
 
 
-<!-- ##### SECTION ./tmpl/xlib-rendering.sgml:Long_Description ##### -->
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-xlib-init.sgml:Title ##### -->
+&gdk-pixbuf; Xlib initialization
+
+
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-xlib-rendering.sgml:Long_Description ##### -->
   <para>
     The &gdk-pixbuf; Xlib library provides several convenience
     functions to render pixbufs to X drawables.  It uses XlibRGB to
@@ -218,35 +216,21 @@ Initializing the &gdk-pixbuf; Xlib library.
   </para>
 
 
-<!-- ##### SECTION ./tmpl/gdk-pixbuf-io.sgml:Short_Description ##### -->
-
-
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-xlib-rendering.sgml:See_Also ##### -->
+<para>
 
-<!-- ##### SECTION ./tmpl/gnome-canvas-pixbuf.sgml:Short_Description ##### -->
-Canvas item to display #GdkPixbuf images.
+</para>
 
 
-<!-- ##### SECTION ./tmpl/from-drawables.sgml:Long_Description ##### -->
-  <para>
-    The functions in this section allow you to take the image data
-    from a GDK drawable and dump it into a #GdkPixbuf.  This can be
-    used for screenshots and other special effects.  Note that these
-    operations can be expensive, since the image data has to be
-    transferred from the X server to the client program and converted.
-  </para>
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-xlib-rendering.sgml:Short_Description ##### -->
+Rendering a pixbuf to an X drawable.
 
 
-<!-- ##### ARG GnomeCanvasPixbuf:width-set ##### -->
-  <para>
-    Determines whether the <link
-    linkend="GnomeCanvasPixbuf--width">width</link> argument is taken
-    into account when scaling the pixbuf item.  If this argument is
-    %FALSE, then the width value of the pixbuf will be used instead.
-    This argument is %FALSE by default.
-  </para>
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-xlib-rendering.sgml:Title ##### -->
+Xlib Rendering
 
 
-<!-- ##### SECTION ./tmpl/xlib-rgb.sgml:Long_Description ##### -->
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-xlib-rgb.sgml:Long_Description ##### -->
   <para>
     The XlibRGB set of functions is a port of the GdkRGB library to
     use plain Xlib and X drawables.  You can use these functions to
@@ -255,153 +239,600 @@ Canvas item to display #GdkPixbuf images.
   </para>
 
 
-<!-- ##### SECTION ./tmpl/xlib-rgb.sgml:Short_Description ##### -->
-Functions for rendering RGB buffers to X drawables.
-
-
-<!-- ##### MACRO GNOME_CANVAS_PIXBUF ##### -->
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-xlib-rgb.sgml:See_Also ##### -->
   <para>
-    Casts a #GtkOjbect to a #GnomeCanvasPixbuf.
+    GdkRGB
   </para>
 
-@obj: A GTK+ object.
-
-<!-- ##### SECTION ./tmpl/gdk-pixbuf-io.sgml:See_Also ##### -->
-<para>
-
-</para>
 
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-xlib-rgb.sgml:Short_Description ##### -->
+Functions for rendering RGB buffers to X drawables.
 
-<!-- ##### ARG GnomeCanvasPixbuf:height-pixels ##### -->
-<para>
 
-</para>
+<!-- ##### SECTION ./tmpl/gdk-pixbuf-xlib-rgb.sgml:Title ##### -->
+XlibRGB
 
 
-<!-- ##### ARG GnomeCanvasPixbuf:y-in-pixels ##### -->
+<!-- ##### SECTION ./tmpl/gnome-canvas-pixbuf.sgml:Long_Description ##### -->
   <para>
-    Works in the same way as the <link
-    linkend="GnomeCanvasPixbuf--x-in-pixels">x_in_pixels</link>
-    argument, but controls whether the <link
-    linkend="GnomeCanvasPixbuf--y">y</link> translation offset is
-    scaled or not.  The default is %FALSE.
+    This canvas item displays #GdkPixbuf images.  It handles full
+    affine transformations in both GDK and antialiased modes, and also
+    supports the <ulink url="http://www.w3.org">W3C</ulink>'s <ulink
+    url="http://www.w3.org/Graphics/SVG/">SVG</ulink>-like scaling and
+    translation semantics for absolute pixel values.
   </para>
 
-<!--
-Local variables:
-mode: sgml
-sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
-End:
--->
+  <para>
+    #GdkPixbuf structures may be shared among different pixbuf canvas
+    items; the pixbuf item uses #GdkPixbuf's reference counting
+    functions for this.
+  </para>
 
+  <refsect2>
+    <title>Custom Scaling and Translation</title>
 
-<!-- ##### SECTION ./tmpl/xlib-rendering.sgml:Short_Description ##### -->
-Rendering a pixbuf to an X drawable.
+    <para>
+      In addition to the normal affine transformations supported by
+      canvas items, the #GnomeCanvasPixbuf item supports independent
+      object arguments for scaling and translation.  This is useful
+      for explicitly setting a size to which the pixbuf's image will
+      be scaled, and for specifying translation offsets that take
+      place in the item's local coordinate system.
+    </para>
 
+    <para>
+      By default, the pixbuf canvas item will attain the size in units
+      of the #GdkPixbuf it contains.  If a #GnomeCanvasPixbuf is
+      configured to use a #GdkPixbuf that has a size of 300 by 200
+      pixels, then the pixbuf item will automatically obtain a size of
+      300 by 200 units in the item's local coordinate system.  If the
+      item is transformed with a scaling transformation of (0.5, 2.0),
+      then the final image size will be of 150 by 400 pixels.
+    </para>
 
-<!-- ##### FUNCTION gdk_pixbuf_finalize ##### -->
+    <para>
+      To set custom width and height values, you must set the <link
+      linkend="GnomeCanvasPixbuf--width-set">width_set</link> or <link
+      linkend="GnomeCanvasPixbuf--height-set">height_set</link>
+      arguments to %TRUE, and then set the <link
+      linkend="GnomeCanvasPixbuf--width">width</link> or <link
+      linkend="GnomeCanvasPixbuf--height">height</link> arguments to
+      the desired values.  The former two arguments control whether
+      the latter two are used when computing the final image's size;
+      they are both %FALSE by default so that the pixbuf item will
+      attain a size in units equal to the size in pixels of the
+      #GdkPixbuf that the item contains.
+    </para>
+
+    <para>
+      The custom translation offsets are controlled by the <link
+      linkend="GnomeCanvasPixbuf--x">x</link> and <link
+      linkend="GnomeCanvasPixbuf--y">y</link> arguments.  The logical
+      upper-left vertex of the image will be translated by the
+      specified distance, aligned with the item's local coordinate
+      system.
+    </para>
+  </refsect2>
+
+  <refsect2>
+    <title>Absolute Pixel Scaling and Translation</title>
+
+    <para>
+      The <ulink url="http://www.w3.org/Graphics/SVG/">Scalable Vector
+      Graphics</ulink> specification (SVG) of the <ulink
+      url="http://www.w3.org">World Wide Web Consortium</ulink> also
+      allows images to be translated and scaled by absolute pixel
+      values that are independent of an item's normal affine
+      transformation.
+    </para>
+
+    <para>
+      Normally, the pixbuf item's translation and scaling arguments
+      are interpreted in units, so they will be modified by the item's
+      affine transformation.  The <link
+      linkend="GnomeCanvasPixbuf--width-in-pixels">width_in_pixels</link>,
+      <link
+      linkend="GnomeCanvasPixbuf--height-in-pixels">height_in_pixels</link>,
+      <link
+      linkend="GnomeCanvasPixbuf--x-in-pixels">x_in_pixels</link>, and
+      <link
+      linkend="GnomeCanvasPixbuf--y-in-pixels">y_in_pixels</link>
+      object arguments can be used to modify this behavior.  If one of
+      these arguments is %TRUE, then the corresponding scaling or
+      translation value will not be affected lengthwise by the pixbuf
+      item's affine transformation.
+    </para>
+
+    <para>
+      For example, consider a pixbuf item whose size is (300, 200).
+      If the item is modified with a scaling transformation of (0.5,
+      2.0) but the <link
+      linkend="GnomeCanvasPixbuf--width-in-pixels">width_in_pixels</link>
+      is set to %TRUE, then the item will appear to be (300, 400)
+      pixels in size.  This means that in this case the item's affine
+      transformation only applies to the height value, while the width
+      value is kept in absolute pixels.
+    </para>
+
+    <para>
+      Likewise, consider a pixbuf item whose (<link
+      linkend="GnomeCanvasPixbuf--x">x</link>, <link
+      linkend="GnomeCanvasPixbuf--y">y</link>) arguments are set to
+      (30, 40).  If the item is then modified by the same scaling
+      transformation of (0.5, 2.0) but the <link
+      linkend="GnomeCanvasPixbuf--y-in-pixels">y_in_pixels</link>
+      argument is set to %TRUE, then the image's upper-left corner
+      will appear to be at position (15, 40).  In this case, the
+      affine transformation is applied only to the x offset, while the
+      y offset is kept in absolute pixels.
+    </para>
+
+    <para>
+      In short, these arguments control whether a particular dimension
+      of a pixbuf item is scaled or not in the normal way by the
+      item's affine transformation.
+    </para>
+  </refsect2>
+
+  <refsect2>
+    <title>Resource Management</title>
+
+    <para>
+      When you set the #GdkPixbuf structure that a #GnomeCanvasPixbuf
+      item will use by setting the <link
+      linkend="GnomeCanvasPixbuf--pixbuf">pixbuf</link> argument, a
+      reference count will be added to that #GdkPixbuf structure.
+      When the pixbuf item no longer needs the #GdkPixbuf structure,
+      such as when the item is destroyed or when a new pixbuf
+      structure is passed to it, then the old #GdkPixbuf structure
+      will be automatically unreferenced.
+    </para>
+
+    <para>
+      This means that if an application just needs to load a pixbuf
+      image and set it into a pixbuf canvas item, it can do the
+      following to &lsquo;forget&rsquo; about the pixbuf structure:
+
+      <programlisting>
+       GdkPixbuf *pixbuf;
+       GnomeCanvasItem *item;
+
+       pixbuf = gdk_pixbuf_new_from_file ("foo.png");
+       g_assert (pixbuf != NULL);
+
+       item = gnome_canvas_item_new (gnome_canvas_root (my_canvas),
+                                     gnome_canvas_pixbuf_get_type (),
+                                     "pixbuf", pixbuf,
+                                     NULL);
+       gdk_pixbuf_unref (pixbuf);
+      </programlisting>
+    </para>
+
+    <para>
+      After this happens, the reference count of the pixbuf structure
+      will be 1:  the gdk_pixbuf_new_from_file() function creates it
+      with a reference count of 1, then setting the <link
+      linkend="GnomeCanvasPixbuf--pixbuf">pixbuf</link> argument of
+      the #GnomeCanvasPixbuf item increases it to 2, and then it is
+      decremented to 1 by the call to gdk_pixbuf_unref().  When the
+      canvas item is destroyed, it will automatically unreference the
+      pixbuf structure again, causing its reference count to drop to
+      zero and thus be freed.
+    </para>
+  </refsect2>
+
+
+<!-- ##### SECTION ./tmpl/gnome-canvas-pixbuf.sgml:See_Also ##### -->
+  <para>
+    #GnomeCanvas, #GdkPixbuf
+  </para>
+
+
+<!-- ##### SECTION ./tmpl/gnome-canvas-pixbuf.sgml:Short_Description ##### -->
+Canvas item to display #GdkPixbuf images.
+
+
+<!-- ##### SECTION ./tmpl/gnome-canvas-pixbuf.sgml:Title ##### -->
+GnomeCanvasPixbuf
+
+
+<!-- ##### SECTION ./tmpl/module_interface.sgml:Long_Description ##### -->
 <para>
 
 </para>
 
-@pixbuf: <!--
-Local variables:
-mode: sgml
-sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
-End:
--->
 
-<!-- ##### ARG GnomeCanvasPixbuf:x-in-pixels ##### -->
+<!-- ##### SECTION ./tmpl/module_interface.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/module_interface.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/module_interface.sgml:Title ##### -->
+Module Interface
+
+
+<!-- ##### SECTION ./tmpl/rendering.sgml:Long_Description ##### -->
+  <para>
+    The &gdk-pixbuf; library provides several convenience functions to
+    render pixbufs to GDK drawables.  It uses the GdkRGB to render the
+    image data.
+  </para>
+
+  <para>
+    At this point there is not a standard alpha channel extension for
+    the X Window System, so it is not possible to use full opacity
+    information when painting images to arbitrary drawables.  The
+    &gdk-pixbuf; convenience functions will threshold the opacity
+    information to create a bi-level clipping mask (black and white),
+    and use that to draw the image onto a drawable.
+  </para>
+
+  <important>
+    <para>
+      Since these functions use GdkRGB for rendering, you must
+      initialize GdkRGB before using any of them.  You can do this by
+      calling gdk_rgb_init() near the beginning of your program.
+    </para>
+  </important>
+
+
+<!-- ##### SECTION ./tmpl/rendering.sgml:See_Also ##### -->
+  <para>
+    GdkRGB
+  </para>
+
+
+<!-- ##### SECTION ./tmpl/rendering.sgml:Short_Description ##### -->
+Rendering a pixbuf to a GDK drawable.
+
+
+<!-- ##### SECTION ./tmpl/rendering.sgml:Title ##### -->
+Rendering
+
+
+<!-- ##### SECTION ./tmpl/scaling.sgml:Long_Description ##### -->
+  <para>
+    The &gdk-pixbuf; contains functions to scale pixbufs, to scale
+    pixbufs and composite against an existing image, and to scale
+    pixbufs and composite against a solid color or checkerboard.
+    Compositing a checkerboard is a common way to show an image with
+    an alpha channel in image-viewing and editing software.
+  </para>
+
+  <para>
+    Since the full-featured functions (gdk_pixbuf_scale(),
+    gdk_pixbuf_composite(), and gdk_pixbuf_composite_color()) are
+    rather complex to use and have many arguments, two simple
+    convenience functions are provided, gdk_pixbuf_scale_simple() and
+    gdk_pixbuf_composite_color_simple() which create a new pixbuf of a
+    given size, scale an original image to fit, and then return the
+    new pixmap.
+  </para>
+
+  <para>
+    The following example demonstrates handling an expose event by
+    rendering the appropriate area of a source image (which is scaled
+    to fit the widget) onto the widget's window.  The source image is
+    rendered against a checkerboard, which provides a visual
+    representation of the alpha channel if the image has one. If the
+    image doesn't have an alpha channel, calling
+    gdk_pixbuf_composite_color() function has exactly the same effect
+    as calling gdk_pixbuf_scale().
+  </para>
+
+  <programlisting>
+gboolean
+expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
+{
+  GdkPixbuf *dest;
+
+  gdk_window_set_back_pixmap (widget->window, NULL, FALSE);
+  
+  dest = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, event->area.width, event->area.height);
+
+  gdk_pixbuf_composite_color (pixbuf, dest,
+                              0, 0, event->area.width, event->area.height,
+                              -event->area.x, -event->area.y,
+                              (double) widget->allocation.width / gdk_pixbuf_get_width (pixbuf),
+                              (double) widget->allocation.height / gdk_pixbuf_get_height (pixbuf),
+                              GDK_INTERP_BILINEAR, 255,
+                              event->area.x, event->area.y, 16, 0xaaaaaa, 0x555555);
+
+  gdk_pixbuf_render_to_drawable (dest, widget->window, widget->style->fg_gc[GTK_STATE_NORMAL],
+                                 0, 0, event->area.x, event->area.y,
+                                 event->area.width, event->area.height,
+                                 GDK_RGB_DITHER_NORMAL, event->area.x, event->area.y);
+  
+  gdk_pixbuf_unref (dest);
+  
+  return TRUE;
+}
+  </programlisting>
+
+
+<!-- ##### SECTION ./tmpl/scaling.sgml:See_Also ##### -->
+  <para>
+    GdkRGB
+  </para>
+
+
+<!-- ##### SECTION ./tmpl/scaling.sgml:Short_Description ##### -->
+Scaling pixbufs and scaling and compositing pixbufs
+
+
+<!-- ##### SECTION ./tmpl/scaling.sgml:Title ##### -->
+Scaling
+
+
+<!-- ##### SECTION ./tmpl/util.sgml:Long_Description ##### -->
+  <para>
+    These functions provide miscellaneous utilities for manipulating
+    pixbufs.  The pixel data in pixbufs may of course be manipulated
+    directly by applications, but several common operations can be
+    performed by these functions instead.
+  </para>
+
+
+<!-- ##### SECTION ./tmpl/util.sgml:See_Also ##### -->
+  <para>
+    #GdkPixbuf
+  </para>
+
+
+<!-- ##### SECTION ./tmpl/util.sgml:Short_Description ##### -->
+Utility and miscellaneous convenience functions.
+
+
+<!-- ##### SECTION ./tmpl/util.sgml:Title ##### -->
+Utilities
+
+
+<!-- ##### SECTION ./tmpl/xlib-from-drawables.sgml:Long_Description ##### -->
+  <para>
+    The functions in this section allow you to take the image data
+    from an X drawable and dump it into a #GdkPixbuf.  This can be
+    used for screenshots and other special effects.  Note that these
+    operations can be expensive, since the image data has to be
+    transferred from the X server to the client program and converted.
+  </para>
+
+  <para>
+    These functions are analogous to those for the Gdk version of
+    &gdk-pixbuf;.
+  </para>
+
+
+<!-- ##### SECTION ./tmpl/xlib-from-drawables.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/xlib-from-drawables.sgml:Short_Description ##### -->
+Getting parts of an X drawable's image data into a pixbuf.
+
+
+<!-- ##### SECTION ./tmpl/xlib-from-drawables.sgml:Title ##### -->
+X Drawables to Pixbufs
+
+
+<!-- ##### SECTION ./tmpl/xlib-init.sgml:Long_Description ##### -->
+  <para>
+    In addition to the normal Gdk-specific functions, the &gdk-pixbuf;
+    package provides a small library that lets Xlib-only applications
+    use #GdkPixbuf structures and render them to X drawables.  The
+    functions in this section are used to initialize the &gdk-pixbuf;
+    Xlib library.  This library must be initialized near the beginning
+    or the program or before calling any of the other &gdk-pixbuf;
+    Xlib functions; it cannot be initialized automatically since
+    Xlib-only applications do not call gdk_rgb_init() like GNOME
+    applications do.
+  </para>
+
+
+<!-- ##### SECTION ./tmpl/xlib-init.sgml:See_Also ##### -->
+  <para>
+    XlibRGB
+  </para>
+
+
+<!-- ##### SECTION ./tmpl/xlib-init.sgml:Short_Description ##### -->
+Initializing the &gdk-pixbuf; Xlib library.
+
+
+<!-- ##### SECTION ./tmpl/xlib-init.sgml:Title ##### -->
+&gdk-pixbuf; Xlib initialization
+
+
+<!-- ##### SECTION ./tmpl/xlib-rendering.sgml:Long_Description ##### -->
+  <para>
+    The &gdk-pixbuf; Xlib library provides several convenience
+    functions to render pixbufs to X drawables.  It uses XlibRGB to
+    render the image data.
+  </para>
+
+  <para>
+    These functions are analogous to those for the Gdk version of
+    &gdk-pixbuf;.
+  </para>
+
+
+<!-- ##### SECTION ./tmpl/xlib-rendering.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/xlib-rendering.sgml:Short_Description ##### -->
+Rendering a pixbuf to an X drawable.
+
+
+<!-- ##### SECTION ./tmpl/xlib-rendering.sgml:Title ##### -->
+Xlib Rendering
+
+
+<!-- ##### SECTION ./tmpl/xlib-rgb.sgml:Long_Description ##### -->
+  <para>
+    The XlibRGB set of functions is a port of the GdkRGB library to
+    use plain Xlib and X drawables.  You can use these functions to
+    render RGB buffers into drawables very quickly with high-quality
+    dithering.
+  </para>
+
+
+<!-- ##### SECTION ./tmpl/xlib-rgb.sgml:See_Also ##### -->
+  <para>
+    GdkRGB
+  </para>
+
+
+<!-- ##### SECTION ./tmpl/xlib-rgb.sgml:Short_Description ##### -->
+Functions for rendering RGB buffers to X drawables.
+
+
+<!-- ##### SECTION ./tmpl/xlib-rgb.sgml:Title ##### -->
+XlibRGB
+
+
+<!-- ##### MACRO GDK_PIXBUF_LOADER ##### -->
+  <para>
+    Casts a #GtkObject to a #GdkPixbufLoader.
+  </para>
+
+@obj: A GTK+ object.
+
+<!-- ##### MACRO GNOME_CANVAS_PIXBUF ##### -->
   <para>
-    If this argument is %TRUE, the pixbuf's translation with respect
-    to its logical origin in item-relative coordinates will be in
-    pixels, that is, the visible offset will not change even if the
-    item's affine transformation changes.  If it is %FALSE, the
-    pixbuf's translation will be taken to be in canvas units, and thus
-    will change along with the item's affine transformation.  The
-    default is %FALSE.
+    Casts a #GtkOjbect to a #GnomeCanvasPixbuf.
   </para>
 
+@obj: A GTK+ object.
 
-<!-- ##### SECTION ./tmpl/rendering.sgml:Short_Description ##### -->
-Rendering a pixbuf to a GDK drawable.
+<!-- ##### STRUCT GdkPixbufAnimationClass ##### -->
+<para>
 
+</para>
 
-<!-- ##### FUNCTION gdk_pixbuf_set_last_unref_handler ##### -->
+
+<!-- ##### STRUCT GdkPixbufClass ##### -->
 <para>
 
 </para>
 
-@pixbuf: 
-@last_unref_fn: 
-@last_unref_fn_data: 
 
-<!-- ##### ARG GnomeCanvasPixbuf:y-set ##### -->
+<!-- ##### USER_FUNCTION GdkPixbufLastUnref ##### -->
   <para>
-    Determines whether the <link
-    linkend="GnomeCanvasPixbuf--y">y</link> argument is used to
-    translate the pixbuf from its logical origin in item-relative
-    coordinates.  Works in the same way as the <link
-    linkend="GnomeCanvasPixbuf--x-set">x_set</link> argument.  The
-    default is %FALSE.
+    A function of this type can be used to override the default
+    operation when a pixbuf loses its last reference, i.e. when
+    gdk_pixbuf_unref() is called on a #GdkPixbuf structure that has a
+    reference count of 1.  This function should determine whether to
+    finalize the pixbuf by calling gdk_pixbuf_finalize(), or whether
+    to just resume normal execution.  The last unref handler for a
+    #GdkPixbuf can be set using the
+    gdk_pixbuf_set_last_unref_handler() function.  By default, pixbufs
+    will be finalized automatically if no last unref handler has been
+    defined.
   </para>
 
+@pixbuf: The pixbuf that is losing its last reference.
+@data: User closure data.
 
-<!-- ##### SECTION ./tmpl/xlib-init.sgml:Long_Description ##### -->
+<!-- ##### SIGNAL GdkPixbufLoader::animation-done ##### -->
   <para>
-    In addition to the normal Gdk-specific functions, the &gdk-pixbuf;
-    package provides a small library that lets Xlib-only applications
-    use #GdkPixbuf structures and render them to X drawables.  The
-    functions in this section are used to initialize the &gdk-pixbuf;
-    Xlib library.  This library must be initialized near the beginning
-    or the program or before calling any of the other &gdk-pixbuf;
-    Xlib functions; it cannot be initialized automatically since
-    Xlib-only applications do not call gdk_rgb_init() like GNOME
-    applications do.
+    This signal is emitted when an animation is done loading.
   </para>
 
+@gdkpixbufloader: the object which received the signal.
+@loader: Loader which emitted the signal.
 
-<!-- ##### FUNCTION gdk_pixbuf_get_format ##### -->
-<para>
+<!-- ##### SIGNAL GdkPixbufLoader::area-prepared ##### -->
+  <para>
+    This signal is emitted when the pixbuf loader has been fed the
+    initial amount of data that is required to figure out the size and
+    format of the image that it will create.  After this signal is
+    emitted, applications can call gdk_pixbuf_loader_get_pixbuf() to
+    fetch the partially-loaded pixbuf.
+  </para>
 
-</para>
+@gdkpixbufloader: the object which received the signal.
+@loader: Loader which emitted the signal.
 
-@pixbuf: 
-@Returns: 
+<!-- ##### SIGNAL GdkPixbufLoader::area-updated ##### -->
+  <para>
+    This signal is emitted when a significant area of the image being
+    loaded has been updated.  Normally it means that a complete
+    scanline has been read in, but it could be a different area as
+    well.  Applications can use this signal to know when to repaint
+    areas of an image that is being loaded.
+  </para>
 
-<!-- ##### SECTION ./tmpl/xlib-rendering.sgml:See_Also ##### -->
-<para>
+@gdkpixbufloader: the object which received the signal.
+@arg1: 
+@arg2: 
+@arg3: 
+@arg4: 
+@loader: Loader which emitted the signal.
+@x: X offset of upper-left corner of the updated area.
+@y: Y offset of upper-left corner of the updated area.
+@width: Width of updated area.
+@height: Height of updated area.
+
+<!-- ##### SIGNAL GdkPixbufLoader::closed ##### -->
+  <para>
+    This signal is emitted when gdk_pixbuf_loader_close() is called.
+    It can be used by different parts of an application to receive
+    notification when an image loader is closed by the code that
+    drives it.
+  </para>
 
-</para>
+@gdkpixbufloader: the object which received the signal.
+@loader: Loader which emitted the signal.
 
+<!--
+Local variables:
+mode: sgml
+sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
+End:
+-->
 
-<!-- ##### FUNCTION gdk_pixbuf_render_to_drawable_alpha ##### -->
-<para>
+<!-- ##### SIGNAL GdkPixbufLoader::frame-done ##### -->
+  <para>
+    This signal is emitted when a frame is done loading.  It will be
+    emitted for each frame in an animation data stream.
+  </para>
 
-</para>
+@gdkpixbufloader: the object which received the signal.
+@arg1: 
+@loader: Loader which emitted the signal.
+@frame: Frame which just completed loading.
 
-@pixbuf: 
-@drawable: 
-@src_x: 
-@src_y: 
-@dest_x: 
-@dest_y: 
-@width: 
-@height: 
-@alpha_mode: 
-@alpha_threshold: 
-@dither: 
-@x_dither: 
-@y_dither: 
+<!-- ##### ARG GnomeCanvasPixbuf:height ##### -->
+  <para>
+    Indicates the height the pixbuf will be scaled to.  This argument
+    will only be used if the <link
+    linkend="GnomeCanvasPixbuf--height-set">height_set</link> argument
+    is %TRUE.  Works in the same way as the <link
+    linkend="GnomeCanvasPixbuf--width">width</link> argument.
+  </para>
 
-<!-- ##### ARG GnomeCanvasPixbuf:y-pixels ##### -->
-<para>
 
-</para>
+<!-- ##### ARG GnomeCanvasPixbuf:height-in-pixels ##### -->
+  <para>
+    Works in the same way as the <link
+    linkend="GnomeCanvasPixbuf--width-in-pixels">width_in_pixels</link>
+    argument.  The default is %FALSE.
+  </para>
 
 
-<!-- ##### SECTION ./tmpl/xlib-init.sgml:Title ##### -->
-&gdk-pixbuf; Xlib initialization
+<!-- ##### ARG GnomeCanvasPixbuf:height-pixels ##### -->
+<para>
+
+</para>
 
 
 <!-- ##### ARG GnomeCanvasPixbuf:height-set ##### -->
@@ -415,12 +846,33 @@ Rendering a pixbuf to a GDK drawable.
   </para>
 
 
-<!-- ##### SECTION ./tmpl/xlib-from-drawables.sgml:Short_Description ##### -->
-Getting parts of an X drawable's image data into a pixbuf.
+<!-- ##### ARG GnomeCanvasPixbuf:pixbuf ##### -->
+  <para>
+    Contains a pointer to a #GdkPixbuf structure that will be used by
+    the pixbuf canvas item as an image source.  When a pixbuf is set
+    its reference count is incremented; if the pixbuf item kept a
+    pointer to another #GdkPixbuf structure, the reference count of
+    this structure will be decremented.  Also, the GdkPixbuf's
+    reference count will automatically be decremented when the
+    #GnomeCanvasPixbuf item is destroyed.  When a pixbuf is queried, a
+    reference count will not be added to the return value; you must do
+    this yourself if you intend to keep the pixbuf structure around.
+  </para>
 
 
-<!-- ##### SECTION ./tmpl/xlib-rgb.sgml:Title ##### -->
-XlibRGB
+<!-- ##### ARG GnomeCanvasPixbuf:width ##### -->
+  <para>
+    Indicates the width the pixbuf will be scaled to.  This argument
+    will only be used if the <link
+    linkend="GnomeCanvasPixbuf--width-set">width_set</link> argument
+    is %TRUE.  If the <link
+    linkend="GnomeCanvasPixbuf--width-in-pixels">width_in_pixels</link>
+    argument is %FALSE, the width will be taken to be in canvas units,
+    and thus will be scaled along with the canvas item's affine
+    transformation.  If width_in_pixels is %TRUE, the width will be
+    taken to be in pixels, and will visually remain a constant size
+    even if the item's affine transformation changes.
+  </para>
 
 
 <!-- ##### ARG GnomeCanvasPixbuf:width-in-pixels ##### -->
@@ -434,295 +886,245 @@ XlibRGB
   </para>
 
 
-<!-- ##### ARG GnomeCanvasPixbuf:height ##### -->
+<!-- ##### ARG GnomeCanvasPixbuf:width-pixels ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG GnomeCanvasPixbuf:width-set ##### -->
   <para>
-    Indicates the height the pixbuf will be scaled to.  This argument
-    will only be used if the <link
-    linkend="GnomeCanvasPixbuf--height-set">height_set</link> argument
-    is %TRUE.  Works in the same way as the <link
-    linkend="GnomeCanvasPixbuf--width">width</link> argument.
+    Determines whether the <link
+    linkend="GnomeCanvasPixbuf--width">width</link> argument is taken
+    into account when scaling the pixbuf item.  If this argument is
+    %FALSE, then the width value of the pixbuf will be used instead.
+    This argument is %FALSE by default.
   </para>
 
 
-<!-- ##### ARG GnomeCanvasPixbuf:height-in-pixels ##### -->
+<!-- ##### ARG GnomeCanvasPixbuf:x ##### -->
   <para>
-    Works in the same way as the <link
-    linkend="GnomeCanvasPixbuf--width-in-pixels">width_in_pixels</link>
-    argument.  The default is %FALSE.
+    Indicates the horizontal translation offset of the pixbuf item's
+    image.  This offset may not actually appear horizontal, since it
+    will be affected by the item's affine transformation.  The default
+    is 0.0.
   </para>
 
 
-<!-- ##### SECTION ./tmpl/from-drawables.sgml:See_Also ##### -->
+<!-- ##### ARG GnomeCanvasPixbuf:x-in-pixels ##### -->
   <para>
-    gdk_image_get().
+    If this argument is %TRUE, the pixbuf's translation with respect
+    to its logical origin in item-relative coordinates will be in
+    pixels, that is, the visible offset will not change even if the
+    item's affine transformation changes.  If it is %FALSE, the
+    pixbuf's translation will be taken to be in canvas units, and thus
+    will change along with the item's affine transformation.  The
+    default is %FALSE.
   </para>
 
 
-<!-- ##### SECTION ./tmpl/xlib-from-drawables.sgml:See_Also ##### -->
+<!-- ##### ARG GnomeCanvasPixbuf:x-pixels ##### -->
 <para>
 
 </para>
 
 
-<!-- ##### STRUCT GdkPixbufAnimationClass ##### -->
-<para>
+<!-- ##### ARG GnomeCanvasPixbuf:x-set ##### -->
+  <para>
+    Determines whether the <link
+    linkend="GnomeCanvasPixbuf--x">x</link> argument is used to
+    translate the pixbuf from its logical origin in item-relative
+    coordinates.
+  </para>
 
-</para>
 
+<!-- ##### ARG GnomeCanvasPixbuf:y ##### -->
+  <para>
+    Indicates the vertical translation offset of the pixbuf item's
+    image.  Works in the same way as the <link
+    linkend="GnomeCanvasPixbuf--x">x</link> argument.  The default is
+    0.0.
+  </para>
 
-<!-- ##### SECTION ./tmpl/rendering.sgml:Title ##### -->
-Rendering
 
+<!-- ##### ARG GnomeCanvasPixbuf:y-in-pixels ##### -->
+  <para>
+    Works in the same way as the <link
+    linkend="GnomeCanvasPixbuf--x-in-pixels">x_in_pixels</link>
+    argument, but controls whether the <link
+    linkend="GnomeCanvasPixbuf--y">y</link> translation offset is
+    scaled or not.  The default is %FALSE.
+  </para>
 
-<!-- ##### SECTION ./tmpl/gnome-canvas-pixbuf.sgml:Title ##### -->
-GnomeCanvasPixbuf
+<!--
+Local variables:
+mode: sgml
+sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
+End:
+-->
 
 
-<!-- ##### MACRO GDK_PIXBUF_LOADER ##### -->
-  <para>
-    Casts a #GtkObject to a #GdkPixbufLoader.
-  </para>
+<!-- ##### ARG GnomeCanvasPixbuf:y-pixels ##### -->
+<para>
 
-@obj: A GTK+ object.
+</para>
 
-<!-- ##### SECTION ./tmpl/rendering.sgml:Long_Description ##### -->
-  <para>
-    The &gdk-pixbuf; library provides several convenience functions to
-    render pixbufs to GDK drawables.  It uses the GdkRGB to render the
-    image data.
-  </para>
 
+<!-- ##### ARG GnomeCanvasPixbuf:y-set ##### -->
   <para>
-    At this point there is not a standard alpha channel extension for
-    the X Window System, so it is not possible to use full opacity
-    information when painting images to arbitrary drawables.  The
-    &gdk-pixbuf; convenience functions will threshold the opacity
-    information to create a bi-level clipping mask (black and white),
-    and use that to draw the image onto a drawable.
+    Determines whether the <link
+    linkend="GnomeCanvasPixbuf--y">y</link> argument is used to
+    translate the pixbuf from its logical origin in item-relative
+    coordinates.  Works in the same way as the <link
+    linkend="GnomeCanvasPixbuf--x-set">x_set</link> argument.  The
+    default is %FALSE.
   </para>
 
-  <important>
-    <para>
-      Since these functions use GdkRGB for rendering, you must
-      initialize GdkRGB before using any of them.  You can do this by
-      calling gdk_rgb_init() near the beginning of your program.
-    </para>
-  </important>
 
+<!-- ##### FUNCTION gdk_pixbuf_finalize ##### -->
+<para>
+
+</para>
+
+@pixbuf: <!--
+Local variables:
+mode: sgml
+sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
+End:
+-->
 
-<!-- ##### SECTION ./tmpl/from-drawables.sgml:Short_Description ##### -->
-Getting parts of a drawable's image data into a pixbuf.
+<!-- ##### FUNCTION gdk_pixbuf_get_format ##### -->
+<para>
 
+</para>
 
-<!-- ##### FUNCTION gdk_pixbuf_render_threshold_alpha ##### -->
+@pixbuf: 
+@Returns: 
+
+<!-- ##### FUNCTION gdk_pixbuf_get_from_drawable ##### -->
 <para>
 
 </para>
 
-@pixbuf: 
-@bitmap: 
+@dest: 
+@src: 
+@cmap: 
 @src_x: 
 @src_y: 
 @dest_x: 
 @dest_y: 
 @width: 
 @height: 
-@alpha_threshold: 
+@Returns: <!--
+Local variables:
+mode: sgml
+sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
+End:
+-->
 
-<!-- ##### STRUCT GdkPixbufClass ##### -->
+<!-- ##### FUNCTION gdk_pixbuf_init ##### -->
 <para>
 
 </para>
 
 
-<!-- ##### SECTION ./tmpl/gdk-pixbuf-io.sgml:Long_Description ##### -->
+<!-- ##### FUNCTION gdk_pixbuf_new_from_art_pixbuf ##### -->
 <para>
 
 </para>
 
+@art_pixbuf: 
+@Returns: 
 
-<!-- ##### SECTION ./tmpl/gnome-canvas-pixbuf.sgml:Long_Description ##### -->
-  <para>
-    This canvas item displays #GdkPixbuf images.  It handles full
-    affine transformations in both GDK and antialiased modes, and also
-    supports the <ulink url="http://www.w3.org">W3C</ulink>'s <ulink
-    url="http://www.w3.org/Graphics/SVG/">SVG</ulink>-like scaling and
-    translation semantics for absolute pixel values.
-  </para>
-
-  <para>
-    #GdkPixbuf structures may be shared among different pixbuf canvas
-    items; the pixbuf item uses #GdkPixbuf's reference counting
-    functions for this.
-  </para>
-
-  <refsect2>
-    <title>Custom Scaling and Translation</title>
-
-    <para>
-      In addition to the normal affine transformations supported by
-      canvas items, the #GnomeCanvasPixbuf item supports independent
-      object arguments for scaling and translation.  This is useful
-      for explicitly setting a size to which the pixbuf's image will
-      be scaled, and for specifying translation offsets that take
-      place in the item's local coordinate system.
-    </para>
-
-    <para>
-      By default, the pixbuf canvas item will attain the size in units
-      of the #GdkPixbuf it contains.  If a #GnomeCanvasPixbuf is
-      configured to use a #GdkPixbuf that has a size of 300 by 200
-      pixels, then the pixbuf item will automatically obtain a size of
-      300 by 200 units in the item's local coordinate system.  If the
-      item is transformed with a scaling transformation of (0.5, 2.0),
-      then the final image size will be of 150 by 400 pixels.
-    </para>
-
-    <para>
-      To set custom width and height values, you must set the <link
-      linkend="GnomeCanvasPixbuf--width-set">width_set</link> or <link
-      linkend="GnomeCanvasPixbuf--height-set">height_set</link>
-      arguments to %TRUE, and then set the <link
-      linkend="GnomeCanvasPixbuf--width">width</link> or <link
-      linkend="GnomeCanvasPixbuf--height">height</link> arguments to
-      the desired values.  The former two arguments control whether
-      the latter two are used when computing the final image's size;
-      they are both %FALSE by default so that the pixbuf item will
-      attain a size in units equal to the size in pixels of the
-      #GdkPixbuf that the item contains.
-    </para>
+<!-- ##### FUNCTION gdk_pixbuf_postinit ##### -->
+<para>
 
-    <para>
-      The custom translation offsets are controlled by the <link
-      linkend="GnomeCanvasPixbuf--x">x</link> and <link
-      linkend="GnomeCanvasPixbuf--y">y</link> arguments.  The logical
-      upper-left vertex of the image will be translated by the
-      specified distance, aligned with the item's local coordinate
-      system.
-    </para>
-  </refsect2>
+</para>
 
-  <refsect2>
-    <title>Absolute Pixel Scaling and Translation</title>
+@app: 
+@modinfo: 
 
-    <para>
-      The <ulink url="http://www.w3.org/Graphics/SVG/">Scalable Vector
-      Graphics</ulink> specification (SVG) of the <ulink
-      url="http://www.w3.org">World Wide Web Consortium</ulink> also
-      allows images to be translated and scaled by absolute pixel
-      values that are independent of an item's normal affine
-      transformation.
-    </para>
+<!-- ##### FUNCTION gdk_pixbuf_preinit ##### -->
+<para>
 
-    <para>
-      Normally, the pixbuf item's translation and scaling arguments
-      are interpreted in units, so they will be modified by the item's
-      affine transformation.  The <link
-      linkend="GnomeCanvasPixbuf--width-in-pixels">width_in_pixels</link>,
-      <link
-      linkend="GnomeCanvasPixbuf--height-in-pixels">height_in_pixels</link>,
-      <link
-      linkend="GnomeCanvasPixbuf--x-in-pixels">x_in_pixels</link>, and
-      <link
-      linkend="GnomeCanvasPixbuf--y-in-pixels">y_in_pixels</link>
-      object arguments can be used to modify this behavior.  If one of
-      these arguments is %TRUE, then the corresponding scaling or
-      translation value will not be affected lengthwise by the pixbuf
-      item's affine transformation.
-    </para>
+</para>
 
-    <para>
-      For example, consider a pixbuf item whose size is (300, 200).
-      If the item is modified with a scaling transformation of (0.5,
-      2.0) but the <link
-      linkend="GnomeCanvasPixbuf--width-in-pixels">width_in_pixels</link>
-      is set to %TRUE, then the item will appear to be (300, 400)
-      pixels in size.  This means that in this case the item's affine
-      transformation only applies to the height value, while the width
-      value is kept in absolute pixels.
-    </para>
+@app: 
+@modinfo: 
 
-    <para>
-      Likewise, consider a pixbuf item whose (<link
-      linkend="GnomeCanvasPixbuf--x">x</link>, <link
-      linkend="GnomeCanvasPixbuf--y">y</link>) arguments are set to
-      (30, 40).  If the item is then modified by the same scaling
-      transformation of (0.5, 2.0) but the <link
-      linkend="GnomeCanvasPixbuf--y-in-pixels">y_in_pixels</link>
-      argument is set to %TRUE, then the image's upper-left corner
-      will appear to be at position (15, 40).  In this case, the
-      affine transformation is applied only to the x offset, while the
-      y offset is kept in absolute pixels.
-    </para>
+<!-- ##### FUNCTION gdk_pixbuf_render_pixmap_and_mask ##### -->
+<para>
 
-    <para>
-      In short, these arguments control whether a particular dimension
-      of a pixbuf item is scaled or not in the normal way by the
-      item's affine transformation.
-    </para>
-  </refsect2>
+</para>
 
-  <refsect2>
-    <title>Resource Management</title>
+@pixbuf: 
+@pixmap_return: 
+@mask_return: 
+@alpha_threshold: <!--
+Local variables:
+mode: sgml
+sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
+End:
+-->
 
-    <para>
-      When you set the #GdkPixbuf structure that a #GnomeCanvasPixbuf
-      item will use by setting the <link
-      linkend="GnomeCanvasPixbuf--pixbuf">pixbuf</link> argument, a
-      reference count will be added to that #GdkPixbuf structure.
-      When the pixbuf item no longer needs the #GdkPixbuf structure,
-      such as when the item is destroyed or when a new pixbuf
-      structure is passed to it, then the old #GdkPixbuf structure
-      will be automatically unreferenced.
-    </para>
+<!-- ##### FUNCTION gdk_pixbuf_render_threshold_alpha ##### -->
+<para>
 
-    <para>
-      This means that if an application just needs to load a pixbuf
-      image and set it into a pixbuf canvas item, it can do the
-      following to &lsquo;forget&rsquo; about the pixbuf structure:
+</para>
 
-      <programlisting>
-       GdkPixbuf *pixbuf;
-       GnomeCanvasItem *item;
+@pixbuf: 
+@bitmap: 
+@src_x: 
+@src_y: 
+@dest_x: 
+@dest_y: 
+@width: 
+@height: 
+@alpha_threshold: 
 
-       pixbuf = gdk_pixbuf_new_from_file ("foo.png");
-       g_assert (pixbuf != NULL);
+<!-- ##### FUNCTION gdk_pixbuf_render_to_drawable ##### -->
+<para>
 
-       item = gnome_canvas_item_new (gnome_canvas_root (my_canvas),
-                                     gnome_canvas_pixbuf_get_type (),
-                                     "pixbuf", pixbuf,
-                                     NULL);
-       gdk_pixbuf_unref (pixbuf);
-      </programlisting>
-    </para>
+</para>
 
-    <para>
-      After this happens, the reference count of the pixbuf structure
-      will be 1:  the gdk_pixbuf_new_from_file() function creates it
-      with a reference count of 1, then setting the <link
-      linkend="GnomeCanvasPixbuf--pixbuf">pixbuf</link> argument of
-      the #GnomeCanvasPixbuf item increases it to 2, and then it is
-      decremented to 1 by the call to gdk_pixbuf_unref().  When the
-      canvas item is destroyed, it will automatically unreference the
-      pixbuf structure again, causing its reference count to drop to
-      zero and thus be freed.
-    </para>
-  </refsect2>
+@pixbuf: 
+@drawable: 
+@gc: 
+@src_x: 
+@src_y: 
+@dest_x: 
+@dest_y: 
+@width: 
+@height: 
+@dither: 
+@x_dither: 
+@y_dither: 
 
+<!-- ##### FUNCTION gdk_pixbuf_render_to_drawable_alpha ##### -->
+<para>
 
-<!-- ##### SECTION ./tmpl/xlib-rendering.sgml:Title ##### -->
-Xlib Rendering
+</para>
 
+@pixbuf: 
+@drawable: 
+@src_x: 
+@src_y: 
+@dest_x: 
+@dest_y: 
+@width: 
+@height: 
+@alpha_mode: 
+@alpha_threshold: 
+@dither: 
+@x_dither: 
+@y_dither: 
 
-<!-- ##### FUNCTION gdk_pixbuf_frame_free ##### -->
+<!-- ##### FUNCTION gdk_pixbuf_set_last_unref_handler ##### -->
 <para>
 
 </para>
 
-@frame: 
-@src: 
-
-<!-- ##### SECTION ./tmpl/gdk-pixbuf-io.sgml:Title ##### -->
-gdk-pixbuf-io
-
+@pixbuf: 
+@last_unref_fn: 
+@last_unref_fn_data: 
 
index c35a9ef47f25e98691db10c14b9f7f7be62d1a7c..e841a19b02c8622b07799a89d938b449672a5d67 100644 (file)
@@ -1,18 +1,26 @@
 <!-- ##### SECTION Title ##### -->
-gdk-pixbuf-xlib-init
+&gdk-pixbuf; Xlib initialization
 
 <!-- ##### SECTION Short_Description ##### -->
-
+Initializing the &gdk-pixbuf; Xlib library.
 
 <!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
+  <para>
+    In addition to the normal Gdk-specific functions, the &gdk-pixbuf;
+    package provides a small library that lets Xlib-only applications
+    use #GdkPixbuf structures and render them to X drawables.  The
+    functions in this section are used to initialize the &gdk-pixbuf;
+    Xlib library.  This library must be initialized near the beginning
+    or the program or before calling any of the other &gdk-pixbuf;
+    Xlib functions; it cannot be initialized automatically since
+    Xlib-only applications do not call gdk_rgb_init() like GNOME
+    applications do.
+  </para>
 
 <!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
+  <para>
+    XlibRGB
+  </para>
 
 <!-- ##### FUNCTION gdk_pixbuf_xlib_init ##### -->
 <para>
@@ -30,6 +38,11 @@ gdk-pixbuf-xlib-init
 
 @display: 
 @screen_num: 
-@prefDepth: 
+@prefDepth: <!--
+Local variables:
+mode: sgml
+sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
+End:
+-->
 
 
index 5fc249f255ec66d68bfdcab7ead471608edca252..403941efa9fe2ebfcc5540aaf115b81f9c8c0bdc 100644 (file)
@@ -1,18 +1,19 @@
 <!-- ##### SECTION Title ##### -->
-gdk-pixbuf
+The GdkPixbuf Structure
 
 <!-- ##### SECTION Short_Description ##### -->
-
+Information that describes an image.
 
 <!-- ##### SECTION Long_Description ##### -->
-<para>
 
-</para>
+  <para>
+    The <structname>GdkPixbuf</structname> structure contains
+    information that describes an image in memory.
+  </para>
 
 <!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
+  <para>
+  </para>
 
 <!-- ##### ENUM GdkPixbufError ##### -->
 <para>
@@ -34,24 +35,39 @@ gdk-pixbuf
 
 
 <!-- ##### ENUM GdkColorspace ##### -->
-<para>
-
-</para>
+  <para>
+    This enumeration defines the color spaces that are supported by
+    the &gdk-pixbuf; library.  Currently only RGB is supported.
+  </para>
 
-@GDK_COLORSPACE_RGB: 
+@GDK_COLORSPACE_RGB: Indicates a red/green/blue additive color space.
 
 <!-- ##### ENUM GdkPixbufAlphaMode ##### -->
-<para>
-
-</para>
-
-@GDK_PIXBUF_ALPHA_BILEVEL: 
-@GDK_PIXBUF_ALPHA_FULL: 
+  <para>
+    These values can be passed to
+    gdk_pixbuf_render_to_drawable_alpha() to control how the alpha
+    chanel of an image should be handled.  This function can create a
+    bilevel clipping mask (black and white) and use it while painting
+    the image.  In the future, when the X Window System gets an alpha
+    channel extension, it will be possible to do full alpha
+    compositing onto arbitrary drawables.  For now both cases fall
+    back to a bilevel clipping mask.
+  </para>
+
+@GDK_PIXBUF_ALPHA_BILEVEL: A bilevel clipping mask (black and white)
+will be created and used to draw the image.  Pixels below 0.5 opacity
+will be considered fully transparent, and all others will be
+considered fully opaque.
+@GDK_PIXBUF_ALPHA_FULL: For now falls back to #GDK_PIXBUF_ALPHA_BILEVEL.
+In the future it will do full alpha compositing.
 
 <!-- ##### STRUCT GdkPixbuf ##### -->
-<para>
-
-</para>
+  <para>
+    This is the main structure in the &gdk-pixbuf; library.  It is
+    used to represent images.  It contains information about the
+    image's pixel data, its color space, bits per sample, width and
+    height, and the rowstride or number of bytes between rows.
+  </para>
 
 
 <!-- ##### FUNCTION gdk_pixbuf_get_colorspace ##### -->
@@ -123,6 +139,11 @@ gdk-pixbuf
 </para>
 
 @pixbuf: 
-@Returns: 
+@Returns: <!--
+Local variables:
+mode: sgml
+sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
+End:
+-->
 
 
index 41302c27ca084250c73490b55d7cc9284e2c752a..b5eef8ccb95222ea8a30e57140c497e947c6f208 100644 (file)
@@ -14,31 +14,6 @@ Initialization and Versions
 
 </para>
 
-<!-- ##### FUNCTION gdk_pixbuf_init ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### FUNCTION gdk_pixbuf_preinit ##### -->
-<para>
-
-</para>
-
-@app: 
-@modinfo: 
-
-
-<!-- ##### FUNCTION gdk_pixbuf_postinit ##### -->
-<para>
-
-</para>
-
-@app: 
-@modinfo: 
-
-
 <!-- ##### VARIABLE gdk_pixbuf_version ##### -->
 <para>
 
index 9ae00cfe508060dccba1d8410c1eb61127024c1b..f975e4f69aa29039d3762acd260319738249a4e2 100644 (file)
@@ -1,32 +1,77 @@
 <!-- ##### SECTION Title ##### -->
-refcounting
+Reference Counting and Memory Mangement
 
 <!-- ##### SECTION Short_Description ##### -->
 
+Functions to perform reference counting and memory management on a
+#GdkPixbuf.
 
 <!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
+  <para>
+    #GdkPixbuf structures are reference counted.  This means that
+    an application can share a single pixbuf among many parts of the
+    code.  When a piece of the program needs to keep a pointer to a
+    pixbuf, it should add a reference to it.  When it no longer needs
+    the pixbuf, it should subtract a reference.  The pixbuf will be
+    destroyed when its reference count drops to zero.  Newly-created
+    #GdkPixbuf structures start with a reference count of one.
+  </para>
+
+  <para>
+    <emphasis>Finalizing</emphasis> a pixbuf means to free its pixel
+    data and to free the #GdkPixbuf structure itself.  Most of the
+    library functions that create #GdkPixbuf structures create the
+    pixel data by themselves and define the way it should be freed;
+    you do not need to worry about those.  The only function that lets
+    you specify how to free the pixel data is
+    gdk_pixbuf_new_from_data().  Since you pass it a pre-allocated
+    pixel buffer, you must also specify a way to free that data.  This
+    is done with a function of type #GdkPixbufDestroyNotify.  When a
+    pixbuf created with gdk_pixbuf_new_from_data() is finalized, your
+    destroy notification function will be called, and it is its
+    responsibility to free the pixel array.
+  </para>
+
+  <para>
+    As an extension to traditional reference counting, #GdkPixbuf
+    structures support defining a handler for the last unref
+    operation.  If gdk_pixbuf_unref() is called on a #GdkPixbuf
+    structure that has a reference count of 1, i.e. its last
+    reference, then the pixbuf's last unref handler function will be
+    called.  It is up to this function to determine whether to
+    finalize the pixbuf using gdk_pixbuf_finalize() or to just
+    continue execution.  This can be used to implement a pixbuf cache
+    efficiently; please see the programmer's documentation for
+    details.
+  </para>
+
+<!-- FIXME: link the last sentence above to the relevant section of
+     the programmer's docs.
+-->
 
 <!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
+  <para>
+    #GdkPixbuf, gdk_pixbuf_new_from_data().
+  </para>
 
 <!-- ##### USER_FUNCTION GdkPixbufDestroyNotify ##### -->
-<para>
-
-</para>
+  <para>
+    A function of this type is responsible for freeing the pixel array
+    of a pixbuf.  The gdk_pixbuf_new_from_data() function lets you
+    pass in a pre-allocated pixel array so that a pixbuf can be
+    created from it; in this case you will need to pass in a function
+    of #GdkPixbufDestroyNotify so that the pixel data can be freed
+    when the pixbuf is finalized.
+  </para>
 
-@pixels: 
-@data: 
+@pixels: The pixel array of the pixbuf that is being finalized.
+@data: User closure data.
 
 
 <!-- ##### FUNCTION gdk_pixbuf_ref ##### -->
-<para>
+  <para>
 
-</para>
+  </para>
 
 @pixbuf: 
 @Returns: 
index bcdbee8324cca725cc95ed5ae7ed0d14d25a4521..a8d41a1170bdf3cc68f195fc433255627d2421c3 100644 (file)
 <!-- ##### SECTION Title ##### -->
-scaling
+Scaling
 
 <!-- ##### SECTION Short_Description ##### -->
-
+Scaling pixbufs and scaling and compositing pixbufs
 
 <!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
+  <para>
+    The &gdk-pixbuf; contains functions to scale pixbufs, to scale
+    pixbufs and composite against an existing image, and to scale
+    pixbufs and composite against a solid color or checkerboard.
+    Compositing a checkerboard is a common way to show an image with
+    an alpha channel in image-viewing and editing software.
+  </para>
+
+  <para>
+    Since the full-featured functions (gdk_pixbuf_scale(),
+    gdk_pixbuf_composite(), and gdk_pixbuf_composite_color()) are
+    rather complex to use and have many arguments, two simple
+    convenience functions are provided, gdk_pixbuf_scale_simple() and
+    gdk_pixbuf_composite_color_simple() which create a new pixbuf of a
+    given size, scale an original image to fit, and then return the
+    new pixmap.
+  </para>
+
+  <para>
+    The following example demonstrates handling an expose event by
+    rendering the appropriate area of a source image (which is scaled
+    to fit the widget) onto the widget's window.  The source image is
+    rendered against a checkerboard, which provides a visual
+    representation of the alpha channel if the image has one. If the
+    image doesn't have an alpha channel, calling
+    gdk_pixbuf_composite_color() function has exactly the same effect
+    as calling gdk_pixbuf_scale().
+  </para>
+
+  <programlisting>
+gboolean
+expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
+{
+  GdkPixbuf *dest;
+
+  gdk_window_set_back_pixmap (widget->window, NULL, FALSE);
+  
+  dest = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, event->area.width, event->area.height);
+
+  gdk_pixbuf_composite_color (pixbuf, dest,
+                              0, 0, event->area.width, event->area.height,
+                              -event->area.x, -event->area.y,
+                              (double) widget->allocation.width / gdk_pixbuf_get_width (pixbuf),
+                              (double) widget->allocation.height / gdk_pixbuf_get_height (pixbuf),
+                              GDK_INTERP_BILINEAR, 255,
+                              event->area.x, event->area.y, 16, 0xaaaaaa, 0x555555);
+
+  gdk_pixbuf_render_to_drawable (dest, widget->window, widget->style->fg_gc[GTK_STATE_NORMAL],
+                                 0, 0, event->area.x, event->area.y,
+                                 event->area.width, event->area.height,
+                                 GDK_RGB_DITHER_NORMAL, event->area.x, event->area.y);
+  
+  gdk_pixbuf_unref (dest);
+  
+  return TRUE;
+}
+  </programlisting>
 
 <!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
+  <para>
+    GdkRGB
+  </para>
 
 <!-- ##### ENUM GdkInterpType ##### -->
-<para>
-
-</para>
-
-@GDK_INTERP_NEAREST: 
-@GDK_INTERP_TILES: 
-@GDK_INTERP_BILINEAR: 
-@GDK_INTERP_HYPER: 
+  <para>
+    This enumeration describes the different interpolation modes that
+    can be used with the scaling functions.
+
+    <note>
+      <para>
+       Cubic filtering is missing from the list; hyperbolic
+       interpolation is just as fast and results in higher quality.
+      </para>
+    </note>
+  </para>
+
+@GDK_INTERP_NEAREST: Nearest neighbor sampling; this is the fastest
+and lowest quality mode.
+@GDK_INTERP_TILES: This is an accurate simulation of the PostScript
+image operator without any interpolation enabled.  Each pixel is
+rendered as a tiny parallelogram of solid color, the edges of which
+are implemented with antialiasing.  It resembles nearest neighbor for
+enlargement, and bilinear for reduction.
+@GDK_INTERP_BILINEAR: Bilinear interpolation.  For enlargement, it is
+equivalent to point-sampling the ideal bilinear-interpolated image.
+For reduction, it is equivalent to laying down small tiles and
+integrating over the coverage area.
+@GDK_INTERP_HYPER: This is the slowest and highest quality
+reconstruction function.  It is derived from the hyperbolic filters in
+Wolberg's "Digital Image Warping", and is formally defined as the
+hyperbolic-filter sampling the ideal hyperbolic-filter interpolated
+image (the filter is designed to be idempotent for 1:1 pixel mapping).
 
 <!-- ##### FUNCTION gdk_pixbuf_scale ##### -->
 <para>
@@ -110,6 +184,11 @@ scaling
 @check_size: 
 @color1: 
 @color2: 
-@Returns: 
+@Returns: <!--
+Local variables:
+mode: sgml
+sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
+End:
+-->
 
 
index a119a3f317955db1a5fa95d421ace5711660d52e..35726a967be23704f1e7c6acf35a8890a1da818b 100644 (file)
@@ -1,18 +1,21 @@
 <!-- ##### SECTION Title ##### -->
-util
+Utilities
 
 <!-- ##### SECTION Short_Description ##### -->
-
+Utility and miscellaneous convenience functions.
 
 <!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
+  <para>
+    These functions provide miscellaneous utilities for manipulating
+    pixbufs.  The pixel data in pixbufs may of course be manipulated
+    directly by applications, but several common operations can be
+    performed by these functions instead.
+  </para>
 
 <!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
+  <para>
+    #GdkPixbuf
+  </para>
 
 <!-- ##### FUNCTION gdk_pixbuf_add_alpha ##### -->
 <para>
@@ -39,7 +42,12 @@ util
 @height: 
 @dest_pixbuf: 
 @dest_x: 
-@dest_y: 
+@dest_y: <!--
+Local variables:
+mode: sgml
+sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")
+End:
+-->
 
 
 <!-- ##### FUNCTION gdk_pixbuf_saturate_and_pixelate ##### -->
index 0caaeb723d8e1b595a727ebc51bc1e0da4ad45c9..bb75e310ba9504ccebae33514035c66874301738 100644 (file)
@@ -9,9 +9,19 @@ DOC_MAIN_SGML_FILE=gdk-docs.sgml
 # The directory containing the source code (if it contains documentation).
 DOC_SOURCE_DIR=$(top_srcdir)/gdk
 
+# Extra options to supply to gtkdoc-scan
+SCAN_OPTIONS=
+
+# Extra options to supply to gtkdoc-mkdb
+MKDB_OPTIONS=
+
 # Extra options to supply to gtkdoc-fixref
 FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html
 
+# Used for dependencies
+HFILE_GLOB=$(top_srcdir)/gdk/*.h $(top_srcdir)/gdk/x11/gdkx.h
+CFILE_GLOB=$(top_srcdir)/gdk/*.c
+
 # Header files to ignore when scanning
 IGNORE_HFILES=                 \
        gdkkeysyms.h            \
@@ -28,39 +38,24 @@ IGNORE_HFILES=                      \
 EXTRA_HFILES=                  \
        $(top_srcdir)/gdk/x11/gdkx.h 
 
-tmpl_sources =                         \
-       tmpl/color_contexts.sgml        \
-       tmpl/colors.sgml                \
-       tmpl/cursors.sgml               \
-       tmpl/dnd.sgml                   \
-       tmpl/drawing.sgml               \
-       tmpl/event_structs.sgml         \
-       tmpl/events.sgml                \
-       tmpl/fonts.sgml                 \
-       tmpl/gcs.sgml                   \
-       tmpl/gdk-unused.sgml            \
-       tmpl/general.sgml               \
-       tmpl/images.sgml                \
-       tmpl/input.sgml                 \
-       tmpl/input_contexts.sgml        \
-       tmpl/input_devices.sgml         \
-       tmpl/input_methods.sgml         \
-       tmpl/keys.sgml                  \
-       tmpl/pango_interaction.sgml     \
-       tmpl/pixbufs.sgml               \
-       tmpl/pixmaps.sgml               \
-       tmpl/properties.sgml            \
-       tmpl/regions.sgml               \
-       tmpl/rgb.sgml                   \
-       tmpl/selections.sgml            \
-       tmpl/threads.sgml               \
-       tmpl/visuals.sgml               \
-       tmpl/windows.sgml               \
-       tmpl/x_interaction.sgml
+# Images to copy into HTML directory
+HTML_IMAGES =
 
 # Extra SGML files that are included by DOC_MAIN_SGML_FILE
 content_files =
 
+# Other files to distribute
+extra_files =
+
+# CFLAGS and LDFLAGS for compiling scan program. Only needed
+# if $(DOC_MODULE).types is non-empty.
+GTKDOC_CFLAGS =
+GTKDOC_LIBS =
+
+# Commands for compiling and linking 
+GTKDOC_CC=$(LIBTOOL) --mode=compile $(CC)
+GTKDOC_LD=$(LIBTOOL) --mode=link $(CC)
+
 
 ####################################
 # Everything below here is generic #
@@ -69,46 +64,76 @@ content_files =
 TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
 
 EXTRA_DIST =                           \
-       $(DOC_MAIN_SGML_FILE)           \
        $(content_files)                \
+       $(extra_files)                  \
+       $(HTML_IMAGES)                  \
+       $(DOC_MAIN_SGML_FILE)           \
+       $(DOC_MODULE).types             \
        $(DOC_MODULE)-sections.txt      \
        $(DOC_MODULE)-overrides.txt
 
+DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp
+
 if ENABLE_GTK_DOC
-all-local: html/index.html
+all-local: html-build.stamp
+
+SCANOBJ_FILES =                \
+       $(DOC_MODULE).args      \
+       $(DOC_MODULE).hierarchy \
+       $(DOC_MODULE).signal
+
+scan-build.stamp: $(HFILE_GLOB)
+       @echo '*** Scanning header files ***'
+       cd $(srcdir) && ( \
+       if grep -l '^.+$$' $(DOC_MODULE).types > /dev/null ; then \
+           CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scangobj --module=$(DOC_MODULE) ; \
+       else \
+           for i in $(SCANOBJ_FILES) ; do \
+               test -f $$i || touch $$i ; \
+           done \
+       fi )
+       cd $(srcdir) && \
+         gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES)
+       touch scan-build.stamp
 
-$(DOC_MODULE)-decl.txt: 
-       $(MAKE) scan
+check_scan:
+       $(MAKE) scan-build.stamp
 
-$(tmpl_sources): $(DOC_MODULE)-decl.txt $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
-       $(MAKE) templates
+$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES): check_scan
 
-sgml/$(DOC_MODULE)-doc.bottom: $(tmpl_sources) $(DOC_MODULE)-decl.txt
-       $(MAKE) sgml
+tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
+       @echo '*** Rebuilding template files ***'
+       cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE)
+       touch tmpl-build.stamp
 
-html/index.html: sgml/$(DOC_MODULE)-doc.bottom $(DOC_MAIN_SGML_FILE) $(content_files)
-       $(MAKE) html
-endif
+check_templates: 
+       $(MAKE) tmpl-build.stamp
 
-scan:
-       -(cd $(srcdir) \
-       && gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(EXTRA_HFILES))
+tmpl.stamp: check_templates
 
-templates: 
-       cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE)
+sgml-build.stamp: tmpl.stamp $(CFILE_GLOB)
+       @echo '*** Building SGML ***'
+       cd $(srcdir) && \
+       gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) $(MKDB_OPTIONS)
+       touch sgml-build.stamp
 
-sgml:
-       cd $(srcdir) \
-       && gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR)
+check_sgml:
+       $(MAKE) sgml-build.stamp
 
-html:
+sgml.stamp: check_sgml
+
+html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE)
+       @echo '*** Building HTML ***'
        test -d $(srcdir)/html || mkdir $(srcdir)/html
-       -cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
+       cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
+       test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html )
        @echo '-- Fixing Crossreferences' 
        cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
+       touch html-build.stamp
+endif
 
 clean-local:
-       rm -f *~ *.bak *.signals *-unused.txt
+       rm -f *~ *.bak $(SCANOBJ_FILES) *-unused.txt $(DOC_STAMPS) $(srcdir)/sgml.stamp 
 
 maintainer-clean-local: clean
        cd $(srcdir) && rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
@@ -134,17 +159,21 @@ if ENABLE_GTK_DOC
 dist-check-gtkdoc:
 else
 dist-check-gtkdoc:
-       @echo "*** gtk-doc must be installed and enabled in order to make dist
+       @echo "*** gtk-doc must be installed and enabled in order to make dist"
        @false
 endif
 
-dist-hook: dist-check-gtkdoc
-       mkdir $(distdir)/html
-       mkdir $(distdir)/sgml
+dist-hook: dist-check-gtkdoc dist-hook-local
        mkdir $(distdir)/tmpl
-       -cp $(srcdir)/html/*.html $(srcdir)/html/*.css $(srcdir)/html/index.sgml $(distdir)/html
+       mkdir $(distdir)/sgml
+       mkdir $(distdir)/html
        -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
        -cp $(srcdir)/sgml/*.sgml $(distdir)/sgml
        -cp $(srcdir)/sgml/*.bottom $(srcdir)/sgml/*.top $(distdir)/sgml
+       -cp $(srcdir)/html/index.sgml $(distdir)/html
+       -cp $(srcdir)/html/*.html $(srcdir)/html/*.css $(distdir)/html
+       for i in $(HTML_IMAGES) ; do          \
+         cp $(srcdir)/$$i $(distdir)/html ;  \
+        done
 
-.PHONY : html sgml templates scan
+.PHONY : check_sgml check_templates check_scan dist-hook-local
index e307e1a4d20ed56b3cf773ddf46cfb67d64f4f48..d4185b515c9e683ebf5a14c5909c0b407adf887b 100644 (file)
@@ -2,11 +2,40 @@
 Colormaps and Colors
 
 <!-- ##### SECTION Short_Description ##### -->
-
+manipulation of colors and colormaps.
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
+These functions are used to modify colormaps.
+A colormap is an object that contains the mapping
+between the color values stored in memory and
+the RGB values that are used to display color
+values. In general, colormaps only contain
+significant information for pseudo-color visuals,
+but even for other visual types, a colormap object
+is required in some circumstances.
+</para>
+
+<para>
+There are a couple of special colormaps that can
+be retrieved. The system colormap (retrieved 
+with gdk_colormap_get_system()) is the default
+colormap of the system. If you are using GdkRGB,
+there is another colormap that is important - the
+colormap in which GdkRGB works, retrieved with
+gdk_rgb_get_cmap(). However, when using GdkRGB, 
+it is not generally necessary to allocate colors
+directly.
+</para>
 
+<para>
+In previous revisions of this interface, a number
+of functions that take a #GdkColormap parameter
+were replaced with functions whose names began
+with "gdk_colormap_". This process will probably
+be extended somewhat in the future - 
+gdk_color_white(), gdk_color_black(), and 
+gdk_color_change() will probably become aliases.
 </para>
 
 <!-- ##### SECTION See_Also ##### -->
@@ -16,7 +45,37 @@ Colormaps and Colors
 
 <!-- ##### STRUCT GdkColor ##### -->
 <para>
-
+The #GdkColor structure is used to describe an 
+allocated or unallocated color.
+
+<informaltable pgwide=1 frame="none" role="struct">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
+
+<row>
+<entry><structfield>pixel</structfield></entry>
+<entry>For allocated colors, the value used to
+draw this color on the screen.</entry>
+</row>
+
+<row>
+<entry><structfield>red</structfield></entry>
+<entry>The red component of the color. This is
+a value between 0 and 65535, with 65535 indicating
+full intensitiy.</entry>
+</row>
+
+<row>
+<entry><structfield>green</structfield></entry>
+<entry>the blue component of the color.</entry>
+</row>
+
+<row>
+<entry><structfield>blue</structfield></entry>
+<entry>the green component of the color..</entry>
+</row>
+
+</tbody></tgroup></informaltable>
 </para>
 
 @pixel: 
@@ -26,7 +85,28 @@ Colormaps and Colors
 
 <!-- ##### STRUCT GdkColormap ##### -->
 <para>
-
+The colormap structure contains the following public
+fields.
+
+<informaltable pgwide=1 frame="none" role="struct">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
+
+<row>
+<entry><structfield>size</structfield></entry>
+<entry>For pseudo-color colormaps, the number of colors
+in the colormap..</entry>
+</row>
+
+<row>
+<entry><structfield>colors</structfield></entry>
+<entry>An array containing the current values in the
+colormap. This can be used to map from pixel values
+back to RGB values. This is only meaningful for
+pseudo-color colormaps.</entry>
+</row>
+
+</tbody></tgroup></informaltable>
 </para>
 
 @parent_instance: 
@@ -35,219 +115,278 @@ Colormaps and Colors
 
 <!-- ##### FUNCTION gdk_colormap_new ##### -->
 <para>
-
+Create a new colormap for the given visual.
 </para>
 
-@visual: 
-@allocate: 
-@Returns: 
+@visual: a #GdkVisual.
+@allocate: if %TRUE, the newly created colormap will be
+  a private colormap, and all colors in it will be
+  allocated for the applications use.
+@Returns: the new #GdkColormap.
 
 
 <!-- ##### FUNCTION gdk_colormap_ref ##### -->
 <para>
-
+Increase the reference count of a colormap.
 </para>
 
-@cmap: 
-@Returns: 
+@cmap: a #GdkColormap.
+@Returns: @cmap
 
 
 <!-- ##### FUNCTION gdk_colormap_unref ##### -->
 <para>
-
+Decrease the reference count of a colormap. If the
+resulting reference count is zero, destroys the colormap.
 </para>
 
-@cmap: 
+@cmap: a #GdkColormap.
 
 
 <!-- ##### FUNCTION gdk_colormap_get_system ##### -->
 <para>
-
+Returns the system's default colormap.
 </para>
 
-@Returns: 
+@Returns: the default colormap.
 
 
 <!-- ##### FUNCTION gdk_colormap_get_system_size ##### -->
 <para>
-
+Returns the size of the system's default colormap.
+(See the description of struct #GdkColormap for an
+explanation of the size of a colormap.)
 </para>
 
-@Returns: 
+@Returns: the size of the system's default colormap.
 
 
 <!-- ##### FUNCTION gdk_colormap_change ##### -->
 <para>
-
+Change the value of the first @ncolors in a private colormap
+to match the values in the <structfield>colors</structfield>
+array in the color map. This function is obsolete and
+should not be used. See gdk_color_change().
 </para>
 
-@colormap: 
-@ncolors: 
+@colormap: a #GdkColormap.
+@ncolors: the number of colors to change.
 
 
 <!-- ##### FUNCTION gdk_colormap_alloc_colors ##### -->
 <para>
-
+Allocates colors from a colormap.
 </para>
 
-@colormap: 
-@colors: 
-@ncolors: 
-@writeable: 
-@best_match: 
-@success: 
-@Returns: 
+@colormap: a #GdkColormap.
+@colors: The color values to allocate. On return, the pixel
+ values for allocated colors will be filled in.
+@ncolors: The number of colors in @colors.
+@writeable: If %TRUE, the colors are allocated writeable
+ (their values can later be changed using gdk_color_change()).
+ Writeable colors cannot be shared between applications.
+@best_match: If %TRUE, GDK will attempt to do matching against
+ existing colors if the colors cannot be allocated as
+ requested.
+@success: An array of length @ncolors. On return, this
+ indicates whether the corresponding color in @colors was
+ sucessfully allocated or not.
+@Returns: The number of colors that were not sucessfully 
+ allocated.
 
 
 <!-- ##### FUNCTION gdk_colormap_alloc_color ##### -->
 <para>
-
+Allocate a single color from a colormap.
 </para>
 
-@colormap: 
-@color: 
-@writeable: 
-@best_match: 
-@Returns: 
+@colormap: a #GdkColormap.
+@color: the color to allocate. On return the
+<structfield>pixel</structfield> field will be
+filled in if allocation succeeds.
+@writeable: If %TRUE, the color is allocated writeable
+ (their values can later be changed using gdk_color_change()).
+ Writeable colors cannot be shared between applications.
+@best_match: If %TRUE, GDK will attempt to do matching against
+ existing colors if the color cannot be allocated as
+ requested.
+@Returns: %TRUE if the allocation succeeded.
 
 
 <!-- ##### FUNCTION gdk_colormap_free_colors ##### -->
 <para>
-
+Free previously allocated colors.
 </para>
 
-@colormap: 
-@colors: 
-@ncolors: 
+@colormap: a #GdkColormap.
+@colors: the colors to free.
+@ncolors: the number of colors in @colors.
 
 
 <!-- ##### FUNCTION gdk_colormap_get_visual ##### -->
 <para>
-
+Return the visual for which a given colormap was created.
 </para>
 
-@colormap: 
-@Returns: 
+@colormap: a #GdkColormap.
+@Returns: the visual of the colormap.
 
 
 <!-- ##### FUNCTION gdk_colors_store ##### -->
 <para>
-
+Change the value of the first @ncolors colors in
+a private colormap. This function is obsolete and
+should not be used. See gdk_color_change().
 </para>
 
-@colormap: 
-@colors: 
-@ncolors: 
+@colormap: a #GdkColormap.
+@colors: the new color values.
+@ncolors: the number of colors to change.
 
 
 <!-- ##### FUNCTION gdk_color_copy ##### -->
 <para>
-
+Make a copy of a color structure. The result
+must be freed using gdk_color_free().
 </para>
 
-@color: 
-@Returns: 
+@color: a #GdkColor.
+@Returns: a copy of @color.
 
 
 <!-- ##### FUNCTION gdk_color_free ##### -->
 <para>
-
+Free a color structure created with 
+gdk_color_copy().
 </para>
 
-@color: 
+@color: a #GdkColor.
 
 
 <!-- ##### FUNCTION gdk_colors_alloc ##### -->
 <para>
-
+Allocate colors from a colormap. This function
+is obsolete. See gdk_colormap_alloc_colors().
+For full documentation of the fields, see 
+the Xlib documentation for XAllocColorCells.
 </para>
 
-@colormap: 
-@contiguous: 
-@planes: 
-@nplanes: 
-@pixels: 
-@npixels: 
+@colormap: a #GdkColormap.
+@contiguous: if %TRUE, the colors should be allocated
+ in contiguous color cells.
+@planes: an array in which to store the plane masks.
+@nplanes: the number of planes to allocate. (Or zero,
+ to indicate that the color allocation should not be
+ planar.)
+@pixels: an array into which to store allocated pixel
+ values.
+@npixels: the number of pixels in each plane to allocate.
 @Returns: 
 
 
 <!-- ##### FUNCTION gdk_colors_free ##### -->
 <para>
-
+Free colors allocated with gdk_colors_alloc(). This
+function is obsolete. See gdk_colormap_free_colors().
 </para>
 
-@colormap: 
-@pixels: 
-@npixels: 
-@planes: 
+@colormap: a #GdkColormap.
+@pixels: the pixel values of the colors to free.
+@npixels: the number of values in @pixels.
+@planes: the plane masks for all planes to free, OR'd
+ together.
 
 
 <!-- ##### FUNCTION gdk_color_white ##### -->
 <para>
-
+Return the white color for a given colormap. The resulting
+value has already allocated been allocated. 
 </para>
 
-@colormap: 
-@color: 
-@Returns: 
+@colormap: a #GdkColormap.
+@color: the location to store the color.
+@Returns: %TRUE if the allocation succeeded.
 
 
 <!-- ##### FUNCTION gdk_color_black ##### -->
 <para>
-
+Return the black color for a given colormap. The resulting
+value has already benn allocated. 
 </para>
 
-@colormap: 
-@color: 
-@Returns: 
+@colormap: a #GdkColormap.
+@color: the location to store the color.
+@Returns: %TRUE if the allocation succeeded.
 
 
 <!-- ##### FUNCTION gdk_color_parse ##### -->
 <para>
-
+Parse a textual specification of a color and fill in
+the <structfield>red</structfield>,
+<structfield>green</structfield>, and 
+<structfield>blue</structfield> fields of a 
+#GdkColor structure. The color is <emphasis>not</emphasis> 
+allocated, you must call gdk_colormap_alloc_color() yourself.
+The text string can be in any of the forms accepted
+by <function>XParseColor</function>; these include
+name for a color from <filename>rgb.txt</filename>, such as
+<literal>DarkSlateGray</literal>, or a hex specification
+such as <literal>305050</literal>.
 </para>
 
-@spec: 
-@color: 
+@spec: the string specifying the color.
+@color: the #GdkColor to fill in
 @Returns: 
 
 
 <!-- ##### FUNCTION gdk_color_alloc ##### -->
 <para>
-
+Allocate a single color from a colormap.
+This function is obsolete. See gdk_colormap_alloc_color().
 </para>
 
-@colormap: 
-@color: 
-@Returns: 
+@colormap: a #GdkColormap.
+@color: The color to allocate. On return, the 
+<structfield>pixel</structfield> field will be
+filled in.
+@Returns: %TRUE if the allocation succeeded.
 
 
 <!-- ##### FUNCTION gdk_color_change ##### -->
 <para>
-
+Change the value of a color that has already
+been allocated. If @colormap is not a private
+colormap, then the color must have been allocated
+using gdk_colormap_alloc_colors() with the 
+@writeable set to %TRUE.
 </para>
 
-@colormap: 
-@color: 
+@colormap: a #GdkColormap.
+@color: a #GdkColor, with the color to change
+in the <structfield>pixel</structfield> field,
+and the new value in the remaining fields.
 @Returns: 
 
 
 <!-- ##### FUNCTION gdk_color_equal ##### -->
 <para>
-
+Compare two colors. 
 </para>
 
-@colora: 
-@colorb: 
-@Returns: 
+@colora: a #GdkColor.
+@colorb: another #GdkColor.
+@Returns: %TRUE if the two colors compare equal
 
 
 <!-- ##### FUNCTION gdk_color_hash ##### -->
 <para>
-
+A hash function suitable for using for a hash
+table that stores #GdkColor's.
 </para>
 
-@colora: 
-@Returns: 
+@colora: a #GdkColor.
+@Returns: The hash function appled to @colora
+<!-- # Unused Parameters # -->
+@colorb: NOT USED.
 
 
index 55adf506c7be3d6a34911d68b79b5b268e131e8d..0c03abcc6dbbf9f8c7a49982b3c97b93c72544d5 100644 (file)
@@ -2,11 +2,22 @@
 Drawing Primitives
 
 <!-- ##### SECTION Short_Description ##### -->
-
+functions for drawing points, lines, arcs, and text.
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-
+These functions provide support for drawing points, lines, arcs and text
+onto what are called 'drawables'. Drawables, as the name suggests, are things
+which support drawing onto them, and are either #GdkWindow or #GdkPixmap
+objects.
+</para>
+<para>
+Many of the drawing operations take a #GdkGC argument, which represents a
+graphics context. This #GdkGC contains a number of drawing attributes such
+as foreground color, background color and line width, and is used to reduce
+the number of arguments needed for each drawing operation. See the
+<link linkend="gdk-Graphics-Contexts">Graphics Contexts</link> section for
+more information.
 </para>
 
 <!-- ##### SECTION See_Also ##### -->
@@ -113,111 +124,134 @@ Drawing Primitives
 
 <!-- ##### FUNCTION gdk_draw_point ##### -->
 <para>
-
+Draws a point, using the foreground color and other attributes of the #GdkGC.
 </para>
 
-@drawable: 
-@gc: 
-@x: 
-@y: 
+@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
+@gc: a #GdkGC.
+@x: the x coordinate of the point.
+@y: the y coordinate of the point.
 
 
 <!-- ##### FUNCTION gdk_draw_points ##### -->
 <para>
-
+Draws a number of points, using the foreground color and other attributes of
+the #GdkGC.
 </para>
 
-@drawable: 
-@gc: 
-@points: 
-@npoints: 
+@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
+@gc: a #GdkGC.
+@points: an array of #GdkPoint structures.
+@npoints: the number of points to be drawn.
 
 
 <!-- ##### FUNCTION gdk_draw_line ##### -->
 <para>
-
+Draws a line, using the foreground color and other attributes of the #GdkGC.
 </para>
 
-@drawable: 
-@gc: 
-@x1: 
-@y1: 
-@x2: 
-@y2: 
+@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
+@gc: a #GdkGC.
+@x1: the x coordinate of the start point.
+@y1: the y coordinate of the start point.
+@x2: the x coordinate of the end point.
+@y2: the y coordinate of the end point.
 
 
 <!-- ##### FUNCTION gdk_draw_lines ##### -->
 <para>
-
+Draws a series of lines connecting the given points.
+The way in which joins between lines are draw is determined by the
+#GdkCapStyle value in the #GdkGC. This can be set with
+gdk_gc_set_line_attributes().
 </para>
 
-@drawable: 
-@gc: 
-@points: 
-@npoints: 
+@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
+@gc: a #GdkGC.
+@points: an array of #GdkPoint structures specifying the endpoints of the
+lines.
+@npoints: the size of the @points array.
 
 
 <!-- ##### FUNCTION gdk_draw_segments ##### -->
 <para>
-
+Draws a number of unconnected lines.
 </para>
 
-@drawable: 
-@gc: 
-@segs: 
-@nsegs: 
+@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
+@gc: a #GdkGC.
+@segs: an array of #GdkSegment structures specifying the start and end points
+of the lines to be drawn,
+@nsegs: the number of line segments to draw, i.e. the size of the @segs array.
 
 
 <!-- ##### STRUCT GdkSegment ##### -->
 <para>
-
+Specifies the start and end point of a line for use by the gdk_draw_segments()
+function.
 </para>
 
-@x1: 
-@y1: 
-@x2: 
-@y2: 
+@x1: the x coordinate of the start point.
+@y1: the y coordinate of the start point.
+@x2: the x coordinate of the end point.
+@y2: the y coordinate of the end point.
 
 <!-- ##### FUNCTION gdk_draw_rectangle ##### -->
 <para>
-
+Draws a rectangular outline or filled rectangle, using the foreground color
+and other attributes of the #GdkGC.
 </para>
+<note>
+<para>
+A rectangle drawn filled is 1 pixel smaller in both dimensions than a rectangle
+outlined. Calling gdk_draw_rectangle (window, gc, TRUE, 0, 0, 20, 20) results
+in a filled rectangle 20 pixels wide and 20 pixels high. Calling
+gdk_draw_rectangle (window, gc, FALSE, 0, 0, 20, 20) results in an outlined
+rectangle with corners at (0, 0), (0, 20), (20, 20), and (20, 0), which
+makes it 21 pixels wide and 21 pixels high.
+</para>
+</note>
 
-@drawable: 
-@gc: 
-@filled: 
-@x: 
-@y: 
-@width: 
-@height: 
+@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
+@gc: a #GdkGC.
+@filled: TRUE if the rectangle should be filled.
+@x: the x coordinate of the left edge of the rectangle.
+@y: the y coordinate of the top edge of the rectangle.
+@width: the width of the rectangle.
+@height: the height of the rectangle.
 
 
 <!-- ##### FUNCTION gdk_draw_arc ##### -->
 <para>
-
+Draws an arc or a filled 'pie slice'. The arc is defined by the bounding
+rectangle of the entire ellipse, and the start and end angles of the part of
+the ellipse to be drawn.
 </para>
 
-@drawable: 
-@gc: 
-@filled: 
-@x: 
-@y: 
-@width: 
-@height: 
-@angle1: 
-@angle2: 
+@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
+@gc: a #GdkGC.
+@filled: TRUE if the arc should be filled, producing a 'pie slice'.
+@x: the x coordinate of the left edge of the bounding rectangle.
+@y: the y coordinate of the top edge of the bounding rectangle.
+@width: the width of the bounding rectangle.
+@height: the height of the bounding rectangle.
+@angle1: the start angle of the arc, relative to the 3 o'clock position,
+counter-clockwise, in 1/64ths of a degree.
+@angle2: the end angle of the arc, relative to @angle1, in 1/64ths of a degree.
 
 
 <!-- ##### FUNCTION gdk_draw_polygon ##### -->
 <para>
-
+Draws an outlined or filled polygon.
 </para>
 
-@drawable: 
-@gc: 
-@filled: 
-@points: 
-@npoints: 
+@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
+@gc: a #GdkGC.
+@filled: TRUE if the polygon should be filled. The polygon is closed
+automatically, connecting the last point to the first point if necessary.
+@points: an array of #GdkPoint structures specifying the points making up the
+polygon.
+@npoints: the number of points.
 
 
 <!-- ##### FUNCTION gdk_draw_glyphs ##### -->
@@ -259,50 +293,64 @@ Drawing Primitives
 
 <!-- ##### FUNCTION gdk_draw_string ##### -->
 <para>
-
+Draws a string of characters in the given font or fontset.
 </para>
 
-@drawable: 
-@font: 
-@gc: 
-@x: 
-@y: 
-@string: 
+@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
+@font: a #GdkFont.
+@gc: a #GdkGC.
+@x: the x coordinate of the left edge of the text.
+@y: the y coordinate of the baseline of the text.
+@string: the string of characters to draw.
 
 
 <!-- ##### FUNCTION gdk_draw_text ##### -->
 <para>
-
+Draws a number of characters in the given font or fontset.
 </para>
 
-@drawable: 
-@font: 
-@gc: 
-@x: 
-@y: 
-@text: 
-@text_length: 
+@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
+@font: a #GdkFont.
+@gc: a #GdkGC.
+@x: the x coordinate of the left edge of the text.
+@y: the y coordinate of the baseline of the text.
+@text: the characters to draw.
+@text_length: the number of characters of @text to draw.
 
 
 <!-- ##### FUNCTION gdk_draw_text_wc ##### -->
 <para>
-
+Draws a number of wide characters using the given font of fontset.
+If the font is a 1-byte font, the string is converted into 1-byte characters
+(discarding the high bytes) before output.
 </para>
 
-@drawable: 
-@font: 
-@gc: 
-@x: 
-@y: 
-@text: 
-@text_length: 
+@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
+@font: a #GdkFont.
+@gc: a #GdkGC.
+@x: the x coordinate of the left edge of the text.
+@y: the y coordinate of the baseline of the text.
+@text: the wide characters to draw.
+@text_length: the number of characters to draw.
 
 
 <!-- ##### MACRO gdk_draw_pixmap ##### -->
 <para>
-
+Draws a pixmap, or a part of a pixmap, onto another drawable.
 </para>
 
+<!-- # Unused Parameters # -->
+@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
+@gc: a #GdkGC.
+@src: the source #GdkPixmap to draw.
+@xsrc: the left edge of the source rectangle within @src.
+@ysrc: the top of the source rectangle within @src.
+@xdest: the x coordinate of the destination within @drawable.
+@ydest: the y coordinate of the destination within @drawable.
+@width: the width of the area to be copied, or -1 to make the area extend to
+the right edge of the source pixmap.
+@height: the height of the area to be copied, or -1 to make the area extend
+to the bottom edge of the source pixmap.
 
 
 <!-- ##### FUNCTION gdk_draw_drawable ##### -->
@@ -323,18 +371,21 @@ Drawing Primitives
 
 <!-- ##### FUNCTION gdk_draw_image ##### -->
 <para>
-
-</para>
-
-@drawable: 
-@gc: 
-@image: 
-@xsrc: 
-@ysrc: 
-@xdest: 
-@ydest: 
-@width: 
-@height: 
+Draws a #GdkImage onto a drawable.
+The depth of the #GdkImage must match the depth of the #GdkDrawable.
+</para>
+
+@drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
+@gc: a #GdkGC.
+@image: the #GdkImage to draw.
+@xsrc: the left edge of the source rectangle within @image.
+@ysrc: the top of the source rectangle within @image.
+@xdest: the x coordinate of the destination within @drawable.
+@ydest: the y coordinate of the destination within @drawable.
+@width: the width of the area to be copied, or -1 to make the area extend to
+the right edge of @image.
+@height: the height of the area to be copied, or -1 to make the area extend
+to the bottom edge of @image.
 
 
 <!-- ##### FUNCTION gdk_drawable_get_image ##### -->
index 438d12490447f57383eaf44195c83a50f1312168..858f052fa9e136f5090f6f7e327c40cdc897ab1e 100644 (file)
 Fonts
 
 <!-- ##### SECTION Short_Description ##### -->
-
+loading and manipulating fonts
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
+The GdkFont data type represents a font for drawing on
+the screen. These functions provide support for
+loading fonts, and also for determining the dimensions
+of characters and strings when drawn with a particular
+font.
+</para>
 
+<para>
+Fonts in X are specified by a
+<firstterm>X Logical Font Description</firstterm>. 
+The following description is considerably simplified.
+For definitive information about XLFD's see the 
+X reference documentation. A X Logical Font Description (XLFD)
+consists of a sequence of fields separated (and surrounded by) '-'
+characters. For example, Adobe Helvetica Bold 12 pt, has the
+full description: 
+
+<programlisting>
+"-adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859-1"
+</programlisting>
+</para>
+
+<para>
+The fields in the XLFD are:
+
+<informaltable pgwide=1 frame="none">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
+
+<row>
+<entry>Foundry</entry>
+<entry>the company or organization where the font originated.</entry>
+</row>
+
+<row>
+<entry>Family</entry>
+<entry>the font family (a group of related font designs).</entry>
+</row>
+
+<row>
+<entry>Weight</entry>
+<entry>A name for the font's typographic weight
+For example, 'bold' or 'medium').</entry>
+</row>
+
+<row>
+<entry>Slant</entry>
+<entry>The slant of the font. Common values are 'R' for Roman,
+'I' for italoc, and 'O' for oblique.</entry>
+</row>
+
+<row>
+<entry>Set Width</entry>
+<entry>A name for the width of the font. For example,
+'normal' or 'condensed'.</entry>
+</row>
+
+<row>
+<entry>Add Style</entry>
+<entry>Additional information to distinguish a font from
+other fonts of the same family.</entry>
+</row>
+
+<row>
+<entry>Pixel Size</entry>
+<entry>The body size of the font in pixels.</entry>
+</row>
+
+<row>
+<entry>Point Size</entry>
+<entry>The body size of the font in 10ths of a point.
+(A <firstterm>point</firstterm> is 1/72.27 inch) </entry>
+</row>
+
+<row>
+<entry>Resolution X</entry>
+<entry>The horizontal resolution that the font was designed for.</entry>
+</row>
+
+<row>
+<entry>Resolution Y</entry>
+<entry>The vertical resolution that the font was designed for .</entry>
+</row>
+
+<row>
+<entry>Spacing</entry>
+<entry>The type of spacing for the font - can be 'p' for proportional,
+'m' for monospaced or 'c' for charcell.</entry>
+</row>
+
+<row>
+<entry>Average Width</entry>
+<entry>The average width of a glyph in the font. For monospaced
+and charcell fonts, all glyphs in the font have this width</entry>
+</row>
+
+<row>
+<entry>Charset Registry</entry>
+<entry>The registration authority that owns the encoding for
+the font. Together with the Charset Encoding field, this
+defines the character set for the font.</entry>
+</row>
+
+<row>
+<entry>Charset Encoding</entry>
+<entry>An identifier for the particular character set encoding.</entry>
+</row>
+
+</tbody></tgroup></informaltable>
+</para>
+
+<para>
+When specifying a font via a X logical Font Description,
+'*' can be used as a wildcard to match any portion of
+the XLFD. For instance, the above example could
+also be specified as
+
+<programlisting>
+"-*-helvetica-bold-r-normal--*-120-*-*-*-*-iso8859-1"
+</programlisting>
+
+It is generally a good idea to use wildcards for any
+portion of the XLFD that your program does not care
+about specifically, since that will improve the
+chances of finding a matching font.
+</para>
+
+<para>
+A <firstterm>fontset</firstterm> is a list of fonts
+that is used for drawing international text that may
+contain characters from a number of different character
+sets. It is represented by a list of XLFD's. 
+</para>
+
+<para>
+The font for a given character set is determined by going
+through the list of XLFD's in order. For each one, if
+the registry and and encoding fields match the desired
+character set, then that font is used, otherwise if
+the XLFD contains wild-cards for the registry and encoding
+fields, the registry and encoding for the desired character
+set are subsituted in and a lookup is done. If a match is found
+that font is used. Otherwise, processing continues
+on to the next font in the list.
+</para>
+
+<para>
+The functions for determining the metrics of a string
+come in several varieties that can take a number
+of forms of string input:
+
+<variablelist>
+  <varlistentry>
+    <term>8-bit string</term>
+    <listitem><para>
+    When using functions like gdk_string_width() that
+    take a <type>gchar *</type>, if the font is of type
+    %GDK_FONT_FONT and is an 8-bit font, then each
+    <type>gchar</type> indexes the glyphs in the font directly.
+    </para></listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>16-bit string</term>
+    <listitem><para>
+    For functions taking a <type>gchar *</type>, if the
+    font is of type %GDK_FONT_FONT, and is a 16-bit
+    font, then the <type>gchar *</type> argument is
+    interpreted as a <type>guint16 *</type> cast to
+    a <type>gchar *</type> and each <type>guint16</type>
+    indexes the glyphs in the font directly.
+    </para></listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>Multibyte string</term>
+    <listitem><para>
+    For functions taking a <type>gchar *</type>, if the
+    font is of type %GDK_FONT_FONTSET, then the input
+    string is interpreted as a <firstterm>multibyte</firstterm>
+    encoded according to the current locale. (A multibyte
+    string is one in which each character may consist
+    of one or more bytes, with different lengths for different
+    characters in the string). They can be converted to and
+    from wide character strings (see below) using
+    gdk_wcstombs() and gdk_mbstowcs().) The string will
+    be rendered using one or more different fonts from
+    the fontset.
+    </para></listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>Wide character string</term>
+    <listitem><para>
+    For a number of the text-measuring functions, GTK+
+    provides a variant (such as gdk_text_width_wc()) which
+    takes a <type>GdkWChar *</type> instead of a 
+    <type>gchar *</type>. The input is then taken to
+    be a wide character string in the encoding of the
+    current locale. (A wide character string is a string
+    in which each character consists of several bytes,
+    and the width of each character in the string is 
+    constant.)
+    </para></listitem>
+  </varlistentry>
+</variablelist>
+</para>
+
+<para>
+GDK provides functions to determine a number of different
+measurements (metrics) for a given string. (Need diagram
+here).
+
+<variablelist>
+  <varlistentry>
+    <term>ascent</term>
+    <listitem><para>
+    The vertical distance from the origin of the drawing
+    opereration to the top of the drawn character.
+    </para></listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>descent</term>
+    <listitem><para>
+    The vertical distance from the origin of the drawing
+    opereration to the bottom of the drawn character.
+    </para></listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>left bearing</term>
+    <listitem><para>
+    The horizontal distance from the origin of the drawing
+    operation to the left-most part of the drawn character.
+    </para></listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>right bearing</term>
+    <listitem><para>
+    The horizontal distance from the origin of the drawing
+    operation to the right-most part of the drawn character.
+    </para></listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>width bearing</term>
+    <listitem><para>
+    The horizontal distance from the origin of the drawing
+    operation to the correct origin for drawing another
+    string to follow the current one. Depending on the
+    font, this could be greater than or less than the 
+    right bearing.
+    </para></listitem>
+  </varlistentry>
+</variablelist>
 </para>
 
 <!-- ##### SECTION See_Also ##### -->
@@ -16,7 +265,34 @@ Fonts
 
 <!-- ##### STRUCT GdkFont ##### -->
 <para>
-
+The GdkFont structure represents a font or fontset. It
+contains the following public fields. A new GdkFont
+structure is returned by gdk_font_load() or gdk_fontset_load(),
+and is reference counted with gdk_font_ref() and gdk_font_unref()
+
+<informaltable pgwide=1 frame="none" role="struct">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
+
+<row>
+<entry><structfield>type</structfield></entry>
+<entry>a value of type #GdkFontType which indicates
+whether this font is a single font or a fontset.</entry>
+</row>
+
+<row>
+<entry><structfield>ascent</structfield></entry>
+<entry>the maximum distance that the font, when drawn,
+ascends above the baseline.</entry>
+</row>
+
+<row>
+<entry><structfield>descent</structfield></entry>
+<entry>the maximum distance that the font, when drawn,
+descends below the baseline.</entry>
+</row>
+
+</tbody></tgroup></informaltable>
 </para>
 
 @type: 
@@ -25,7 +301,24 @@ Fonts
 
 <!-- ##### ENUM GdkFontType ##### -->
 <para>
+Indicates the type of a font. The possible values
+are currently:
+
+<informaltable pgwide=1 frame="none" role="enum">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
+
+<row>
+<entry>GDK_FONT_FONT</entry>
+<entry>the font is a single font.</entry>
+</row>
+
+<row>
+<entry>GDK_FONT_FONT</entry>
+<entry>the font is a fontset.</entry>
+</row>
 
+</tbody></tgroup></informaltable>
 </para>
 
 @GDK_FONT_FONT: 
@@ -33,20 +326,34 @@ Fonts
 
 <!-- ##### FUNCTION gdk_font_load ##### -->
 <para>
+Loads a font.
+</para>
 
+<para>
+Currently, this function will always return a new
+font, however, in the future, it may be changed to
+look up the font in a cache. You should make no
+assumptions about the initial reference count.
 </para>
 
-@font_name: 
-@Returns: 
+@font_name: a XLFD describing the font to load.
+@Returns: a #GdkFont, or NULL if the font could not be loaded.
 
 
 <!-- ##### FUNCTION gdk_fontset_load ##### -->
 <para>
-
+Loads a fontset.
+</para>
+<para>
+Currently this function will always return a new
+font, however, in the future, it may be changed to
+look up the font in a cache. You should make no
+assumptions about the initial reference count.
 </para>
 
-@fontset_name: 
-@Returns: 
+@fontset_name: a comma-separated list of XLFDs describing
+   the component fonts of the fontset to load.
+@Returns: a #GdkFont, or NULL if the fontset could not be loaded.
 
 
 <!-- ##### FUNCTION gdk_font_from_description ##### -->
@@ -60,196 +367,225 @@ Fonts
 
 <!-- ##### FUNCTION gdk_font_ref ##### -->
 <para>
-
+Increase the reference count of a count by one.
 </para>
 
-@font: 
-@Returns: 
+@font: a #GdkFont
+@Returns: @font
 
 
 <!-- ##### FUNCTION gdk_font_unref ##### -->
 <para>
-
+Decrease the reference count of a count by one.
+If the result is zero, destroys the font.
 </para>
 
-@font: 
+@font: a #GdkFont
 
 
 <!-- ##### FUNCTION gdk_font_id ##### -->
 <para>
-
+Returns the X Font ID for the given font. 
 </para>
 
-@font: 
-@Returns: 
+@font: a #GdkFont.
+@Returns: the numeric X Font ID
 
 
 <!-- ##### FUNCTION gdk_font_equal ##### -->
 <para>
-
+Compares two fonts for equality. Single fonts compare equal
+if they have the same X font ID. This operation does
+not currently work correctly for fontsets.
 </para>
 
-@fonta: 
-@fontb: 
-@Returns: 
+@fonta: a #GdkFont.
+@fontb: another #GdkFont.
+@Returns: %TRUE if the fonts are equal.
 
 
 <!-- ##### FUNCTION gdk_string_extents ##### -->
 <para>
-
+Returns the metrics of a NULL-terminated string.
 </para>
 
-@font: 
-@string: 
-@lbearing: 
-@rbearing: 
-@width: 
-@ascent: 
-@descent: 
+@font: a #GdkFont.
+@string: the NULL-terminated string to measure.
+@lbearing: the left bearing of the string.
+@rbearing: the right bearing of the string.
+@width: the width of the string.
+@ascent: the ascent of the string.
+@descent: the descent of the string.
 
 
 <!-- ##### FUNCTION gdk_text_extents ##### -->
 <para>
-
+Returns the metrics of a string.
 </para>
 
-@font: 
-@text: 
-@text_length: 
-@lbearing: 
-@rbearing: 
-@width: 
-@ascent: 
-@descent: 
+@font: a #GdkFont
+@text: the text to measure
+@text_length: the length of the text in bytes. (If the
+  font is a 16-bit font, this is twice the length
+  of the text in characters.)
+@lbearing: the left bearing of the string.
+@rbearing: the right bearing of the string.
+@width: the width of the string.
+@ascent: the ascent of the string.
+@descent: the descent of the string.
 
 
 <!-- ##### FUNCTION gdk_text_extents_wc ##### -->
 <para>
-
+Returns the metrics of a string of wide characters.
 </para>
 
-@font: 
-@text: 
-@text_length: 
-@lbearing: 
-@rbearing: 
-@width: 
-@ascent: 
-@descent: 
+@font: a #GdkFont
+@text: the text to measure.
+@text_length: the length of the text in character.
+@lbearing: the left bearing of the string.
+@rbearing: the right bearing of the string.
+@width: the width of the string.
+@ascent: the ascent of the string.
+@descent: the descent of the string.
 
 
 <!-- ##### FUNCTION gdk_string_width ##### -->
 <para>
-
+Determine the width of a NULL-terminated string.
+(The distance from the origin of the string to the 
+point where the next string in a sequence of strings
+should be drawn)
 </para>
 
-@font: 
-@string: 
-@Returns: 
+@font: a #GdkFont
+@string: the NULL-terminated string to measure
+@Returns: the width of the string in pixels.
 
 
 <!-- ##### FUNCTION gdk_text_width ##### -->
 <para>
-
+Determine the width of a given string.
 </para>
 
-@font: 
-@text: 
-@text_length: 
-@Returns: 
+@font: a #GdkFont
+@text: the text to measure.
+@text_length: the length of the text in bytes.
+@Returns: the width of the string in pixels.
 
 
 <!-- ##### FUNCTION gdk_text_width_wc ##### -->
 <para>
-
+Determine the width of a given wide-character string.
 </para>
 
-@font: 
-@text: 
-@text_length: 
-@Returns: 
+@font: a #GdkFont
+@text: the text to measure.
+@text_length: the length of the text in characters.
+@Returns: the width of the string in pixels.
 
 
 <!-- ##### FUNCTION gdk_char_width ##### -->
 <para>
-
+Determine the width of a given character.
 </para>
 
-@font: 
-@character: 
-@Returns: 
+@font: a #GdkFont
+@character: the character to measure.
+@Returns: the width of the character in pixels.
 
 
 <!-- ##### FUNCTION gdk_char_width_wc ##### -->
 <para>
-
+Determine the width of a given wide character. (Encoded
+in the wide-character encoding of the current locale).
 </para>
 
-@font: 
-@character: 
-@Returns: 
+@font: a #GdkFont
+@character: the character to measure.
+@Returns: the width of the character in pixels.
 
 
 <!-- ##### FUNCTION gdk_string_measure ##### -->
 <para>
-
+Determines the distance from the origin to the rightmost
+portion of a NULL-terminated string when drawn. This is not the
+correct value for determining the origin of the next
+portion when drawing text in multiple pieces.
+See gdk_string_width().
 </para>
 
-@font: 
-@string: 
-@Returns: 
+@font: a #GdkFont
+@string: the NULL-terminated string to measure.
+@Returns: the right bearing of the string in pixels.
 
 
 <!-- ##### FUNCTION gdk_text_measure ##### -->
 <para>
-
+Determines the distance from the origin to the rightmost
+portion of a string when drawn. This is not the
+correct value for determining the origin of the next
+portion when drawing text in multiple pieces. 
+See gdk_text_width().
 </para>
 
-@font: 
-@text: 
-@text_length: 
-@Returns: 
+@font: a #GdkFont
+@text: the text to measure.
+@text_length: the length of the text in bytes.
+@Returns: the right bearing of the string in pixels.
 
 
 <!-- ##### FUNCTION gdk_char_measure ##### -->
 <para>
-
+Determines the distance from the origin to the rightmost
+portion of a character when drawn. This is not the
+correct value for determining the origin of the next
+portion when drawing text in multiple pieces. 
 </para>
 
-@font: 
-@character: 
-@Returns: 
+@font: a #GdkFont
+@character: the character to measure.
+@Returns: the right bearing of the character in pixels.
 
 
 <!-- ##### FUNCTION gdk_string_height ##### -->
 <para>
-
+Determines the total height of a given NULL-terminated
+string. This value is not generally useful, because you
+cannot determine how this total height will be drawn in
+relation to the baseline. See gdk_string_extents().
 </para>
 
-@font: 
-@string: 
-@Returns: 
+@font: a #GdkFont
+@string: the NULL-terminated string to measure.
+@Returns: the height of the string in pixels.
 
 
 <!-- ##### FUNCTION gdk_text_height ##### -->
 <para>
-
+Determines the total height of a given string.
+This value is not generally useful, because you cannot
+determine how this total height will be drawn in
+relation to the baseline. See gdk_text_extents().
 </para>
 
-@font: 
-@text: 
-@text_length: 
-@Returns: 
+@font: a #GdkFont
+@text: the text to measure.
+@text_length: the length of the text in bytes.
+@Returns: the height of the string in pixels.
 
 
 <!-- ##### FUNCTION gdk_char_height ##### -->
 <para>
-
+Determines the total height of a given character.
+This value is not generally useful, because you cannot
+determine how this total height will be drawn in
+relation to the baseline. See gdk_text_extents().
 </para>
 
-@font: 
-@character: 
-@Returns: 
+@font: a #GdkFont
+@character: the character to measure.
+@Returns: the height of the character in pixels.
 
 
 <!-- ##### FUNCTION gdk_font_full_name_get ##### -->
@@ -271,27 +607,63 @@ Fonts
 
 <!-- ##### TYPEDEF GdkWChar ##### -->
 <para>
-
+Specifies a wide character type, used to represent character codes.
+This is needed since some native languages have character sets which have
+more than 256 characters (Japanese and Chinese, for example).
+</para>
+<para>
+Wide character values between 0 and 127 are always identical in meaning to
+the ASCII character codes. The wide character value 0 is often used to
+terminate strings of wide characters in a similar way to normal strings
+using the char type.
+</para>
+<para>
+An alternative to wide characters is multi-byte characters, which extend
+normal char strings to cope with larger character sets. As the name suggests,
+multi-byte characters use a different number of bytes to store different
+character codes. For example codes 0-127 (i.e. the ASCII codes) often
+use just one byte of memory, while other codes may use 2, 3 or even 4 bytes.
+Multi-byte characters have the advantage that they can often be used in an
+application with little change, since strings are still represented as arrays
+of char values. However multi-byte strings are much easier to manipulate since
+the character are all of the same size.
+</para>
+<para>
+Applications typically use wide characters to represent character codes
+internally, and multi-byte strings when saving the characters to a file.
+The gdk_wcstombs() and gdk_mbstowcs() functions can be used to convert from
+one representation to the other.
+</para>
+<para>
+See the 'Extended Characters' section of the GNU C Library Reference Manual
+for more detailed information on wide and multi-byte characters.
 </para>
 
 
 <!-- ##### FUNCTION gdk_wcstombs ##### -->
 <para>
-
+Converts a wide character string to a multi-byte string.
+(The function name comes from an acronym of 'Wide Character String TO
+Multi-Byte String').
 </para>
 
-@src: 
-@Returns: 
+@src: a wide character string.
+@Returns: the multi-byte string corresponding to @src, or NULL if the
+conversion failed. The returned string should be freed with g_free() when no
+longer needed.
 
 
 <!-- ##### FUNCTION gdk_mbstowcs ##### -->
 <para>
-
+Converts a multi-byte string to a wide character string.
+(The function name comes from an acronym of 'Multi-Byte String TO Wide
+Character String').
 </para>
 
-@dest: 
-@src: 
-@dest_max: 
-@Returns: 
+@dest: the space to place the converted wide character string into.
+@src: the multi-byte string to convert, which must be null-terminated.
+@dest_max: the maximum number of wide characters to place in @dest.
+@Returns: the number of wide characters written into @dest, or -1 if the
+conversion failed.
 
 
index 6f85c1df53e430fdce13f1805286bef27dd41a75..a72835bc60983aa60884be0a61b721d13192b08f 100644 (file)
@@ -2,11 +2,27 @@
 Graphics Contexts
 
 <!-- ##### SECTION Short_Description ##### -->
-
+objects to encapsulate drawing properties.
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-
+All drawing operations in GDK take a 
+<firstterm>graphics context</firstterm> (GC) argument. 
+A graphics context encapsulates information about
+the way things are drawn, such as the foreground
+color or line width. By using graphics contexts, 
+the number of arguments to each drawing call is
+greatly reduced, and communication overhead is
+minimized, since identical arguments do not need
+to be passed repeatedly.
+</para>
+<para>
+Most values of a graphics context can be set at
+creation time by using gdk_gc_new_with_values(),
+or can be set one-by-one using functions such
+as gdk_gc_set_foreground(). A few of the values
+in the GC, such as the dash pattern, can only
+be set by the latter method.
 </para>
 
 <!-- ##### SECTION See_Also ##### -->
@@ -16,7 +32,9 @@ Graphics Contexts
 
 <!-- ##### STRUCT GdkGC ##### -->
 <para>
-
+The #GdkGC structure represents a graphics context.
+It is an opaque structure with no user-visible
+elements.
 </para>
 
 @parent_instance: 
@@ -34,7 +52,104 @@ Graphics Contexts
 
 <!-- ##### STRUCT GdkGCValues ##### -->
 <para>
-
+The #GdkGCValues structure holds a set of values used
+to create or modify a graphics context.
+
+<informaltable pgwide=1 frame="none" role="struct">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
+
+<row>
+<entry>#GdkColor       foreground;</entry>
+<entry>the foreground color.</entry>
+</row>
+
+<row>
+<entry>#GdkColor       background;</entry>
+<entry>the background color.</entry>
+</row>
+
+<row>
+<entry>#GdkFont *font;</entry>
+<entry>the default font..</entry>
+</row>
+
+<row>
+<entry>#GdkFunction function;</entry>
+<entry>the bitwise operation used when drawing.</entry>
+</row>
+
+<row>
+<entry>#GdkFill fill;</entry>
+<entry>the fill style.</entry>
+</row>
+
+<row>
+<entry>#GdkPixmap *tile;</entry>
+<entry>the tile pixmap.</entry>
+</row>
+
+<row>
+<entry>#GdkPixmap *stipple;</entry>
+<entry>the stipple bitmap.</entry>
+</row>
+
+<row>
+<entry>#GdkPixmap *clip_mask;</entry>
+<entry>the clip mask bitmap.</entry>
+</row>
+
+<row>
+<entry>#GdkSubwindowMode subwindow_mode;</entry>
+<entry>the subwindow mode.</entry>
+</row>
+
+<row>
+<entry>#gint ts_x_origin;</entry>
+<entry>the x origin of the tile or stipple.</entry>
+</row>
+
+<row>
+<entry>#gint ts_y_origin;</entry>
+<entry>the y origin of the tile or stipple.</entry>
+</row>
+
+<row>
+<entry>#gint clip_x_origin;</entry>
+<entry>the x origin of the clip mask.</entry>
+</row>
+
+<row>
+<entry>#gint clip_y_origin;</entry>
+<entry>the y origin of the clip mask.</entry>
+</row>
+
+<row>
+<entry>#gint graphics_exposures;</entry>
+<entry>whether graphics exposures are enabled.</entry>
+</row>
+
+<row>
+<entry>#gint line_width;</entry>
+<entry>the line width</entry>
+</row>
+
+<row>
+<entry>#GdkLineStyle line_style;</entry>
+<entry>the way dashed lines are drawn</entry>
+</row>
+
+<row>
+<entry>#GdkCapStyle cap_style;</entry>
+<entry>the way the ends of lines are drawn</entry>
+</row>
+
+<row>
+<entry>#GdkJoinStyle join_style;</entry>
+<entry>the way joins between lines are drawn</entry>
+</row>
+
+</tbody></tgroup></informaltable>
 </para>
 
 @foreground: 
@@ -58,7 +173,8 @@ Graphics Contexts
 
 <!-- ##### ENUM GdkGCValuesMask ##### -->
 <para>
-
+A set of bit flags used to indicate which fields
+#GdkGCValues structure are set.
 </para>
 
 @GDK_GC_FOREGROUND: 
@@ -82,7 +198,12 @@ Graphics Contexts
 
 <!-- ##### ENUM GdkFunction ##### -->
 <para>
-
+Determines how the bit values for the source pixels are combined with
+the bit values for destination pixels to produce the final result. The
+sixteen values here correspond to the 16 different possible 2x2 truth
+tables.  Only a couple of these values are usually useful; for colored
+images, only %GDK_COPY, %GDK_XOR and %GDK_INVERT are generally
+useful. For bitmaps, %GDK_AND and %GDK_OR are also useful.
 </para>
 
 @GDK_COPY: 
@@ -104,46 +225,58 @@ Graphics Contexts
 
 <!-- ##### FUNCTION gdk_gc_new ##### -->
 <para>
-
+Create a new graphics context with default values. 
 </para>
 
 @drawable: 
-@Returns: 
+@Returns: the new graphics context.
+<!-- # Unused Parameters # -->
+@window: a #GdkDrawable. The created GC must always be used
+ with drawables of the same depth as this one.
 
 
 <!-- ##### FUNCTION gdk_gc_new_with_values ##### -->
 <para>
-
+Create a new GC with the given initial values.
 </para>
 
 @drawable: 
-@values: 
-@values_mask: 
-@Returns: 
+@values: a structure containing initial values for the GC.
+@values_mask: a bit mask indicating which fields in @values
+   are set.
+@Returns: the new graphics context.
+<!-- # Unused Parameters # -->
+@window: a #GdkDrawable. The created GC must always be used
+ with drawables of the same depth as this one.
 
 
 <!-- ##### FUNCTION gdk_gc_ref ##### -->
 <para>
-
+Increase the reference count on a graphics context.
 </para>
 
-@gc: 
-@Returns: 
+@gc: a #GdkGC.
+@Returns: @gc.
 
 
 <!-- ##### FUNCTION gdk_gc_unref ##### -->
 <para>
-
+Decrease the reference count on a graphics context. If
+the resulting reference count is zero, the graphics
+context will be destroyed.
 </para>
 
-@gc: 
+@gc: a #GdkGC.
 
 
 <!-- ##### MACRO gdk_gc_destroy ##### -->
 <para>
-
+Identical to gdk_gc_unref(). This function is obsolete
+and should not be used.
 </para>
 
+<!-- # Unused Parameters # -->
+@gc: a #GdkGC.
 
 
 <!-- ##### FUNCTION gdk_gc_set_values ##### -->
@@ -158,29 +291,29 @@ Graphics Contexts
 
 <!-- ##### FUNCTION gdk_gc_get_values ##### -->
 <para>
-
+Retrieves the current values from a graphics context.
 </para>
 
-@gc: 
-@values: 
+@gc: a #GdkGC.
+@values: the #GdkGCValues structure in which to store the results.
 
 
 <!-- ##### FUNCTION gdk_gc_set_foreground ##### -->
 <para>
-
+Sets the foreground color for a graphics context.
 </para>
 
-@gc: 
-@color: 
+@gc: a #GdkGC.
+@color: the new foreground color.
 
 
 <!-- ##### FUNCTION gdk_gc_set_background ##### -->
 <para>
-
+Sets the background color for a graphics context.
 </para>
 
-@gc: 
-@color: 
+@gc: a #GdkGC.
+@color: the new background color.
 
 
 <!-- ##### FUNCTION gdk_gc_set_rgb_fg_color ##### -->
@@ -203,34 +336,71 @@ Graphics Contexts
 
 <!-- ##### FUNCTION gdk_gc_set_font ##### -->
 <para>
-
+Sets the font for a graphics context. (Note that
+all text-drawing functions in GDK take a @font
+argument; the value set here is used when that
+argument is %NULL.)
 </para>
 
-@gc: 
-@font: 
+@gc: a #GdkGC.
+@font: the new font.
 
 
 <!-- ##### FUNCTION gdk_gc_set_function ##### -->
 <para>
-
+Determines how the current pixel values and the
+pixel values being drawn are combined to produce
+the final pixel values.
 </para>
 
-@gc: 
+@gc: a #GdkGC.
 @function: 
 
 
 <!-- ##### FUNCTION gdk_gc_set_fill ##### -->
 <para>
-
+Set the fill mode for a graphics context.
 </para>
 
-@gc: 
-@fill: 
+@gc: a #GdkGC.
+@fill: the new fill mode.
 
 
 <!-- ##### ENUM GdkFill ##### -->
 <para>
+Determines how primitives are drawn.
+
+<informaltable pgwide=1 frame="none" role="enum">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
 
+<row>
+<entry>GDK_SOLID</entry>
+<entry>draw with the foreground color.</entry>
+</row>
+
+<row>
+<entry>GDK_TILED</entry>
+<entry>draw with a tiled pixmap.</entry>
+</row>
+
+<row>
+<entry>GDK_STIPPLED</entry>
+<entry>draw using the stipple bitmap. Pixels corresponding
+to bits in the stipple bitmap that are set will be drawn in the 
+foreground color; pixels corresponding to bits that are
+not set will be left untouched.</entry>
+</row>
+
+<row>
+<entry>GDK_OPAQUE_STIPPLED</entry>
+<entry>draw using the stipple bitmap. Pixels corresponding
+to bits in the stipple bitmap that are set will be drawn in the 
+foreground color; pixels corresponding to bits that are
+not set will be drawn with the background color.</entry>
+</row>
+
+</tbody></tgroup></informaltable>
 </para>
 
 @GDK_SOLID: 
@@ -240,81 +410,116 @@ Graphics Contexts
 
 <!-- ##### FUNCTION gdk_gc_set_tile ##### -->
 <para>
-
+Set a tile pixmap for a graphics context.
+This will only be used if the fill mode
+is %GDK_TILED.
 </para>
 
-@gc: 
-@tile: 
+@gc: a #GdkGC.
+@tile: the new tile pixmap.
 
 
 <!-- ##### FUNCTION gdk_gc_set_stipple ##### -->
 <para>
-
+Set the stipple bitmap for a graphics context. The
+stipple will only be used if the fill mode is
+%GDK_STIPPLED or %GDK_OPAQUE_STIPPLED.
 </para>
 
-@gc: 
-@stipple: 
+@gc: a #GdkGC.
+@stipple: the new stipple bitmap.
 
 
 <!-- ##### FUNCTION gdk_gc_set_ts_origin ##### -->
 <para>
-
+Set the origin when using tiles or stipples with
+the GC. The tile or stipple will be aligned such
+that the upper left corner of the tile or stipple
+will coincide with this point.
 </para>
 
-@gc: 
-@x: 
-@y: 
+@gc: a #GdkGC.
+@x: the x-coordinate of the origin.
+@y: the y-coordinate of the origin.
 
 
 <!-- ##### FUNCTION gdk_gc_set_clip_origin ##### -->
 <para>
-
+Sets the origin of the clip mask. The coordinates are
+interpreted relative to the upper-left corner of
+the destination drawable of the current operation.
 </para>
 
-@gc: 
-@x: 
-@y: 
+@gc: a #GdkGC.
+@x: the x-coordinate of the origin.
+@y: the y-coordinate of the origin.
 
 
 <!-- ##### FUNCTION gdk_gc_set_clip_mask ##### -->
 <para>
-
+Sets the clip mask for a graphics context from a bitmap.
+The clip mask is interpreted relative to the clip
+origin. (See gdk_gc_set_clip_origin()).
 </para>
 
-@gc: 
-@mask: 
+@gc: the #GdkGC.
+@mask: a bitmap.
 
 
 <!-- ##### FUNCTION gdk_gc_set_clip_rectangle ##### -->
 <para>
+Sets the clip mask for a graphics context from a
+rectangle. The clip mask is interpreted relative to the clip
+origin. (See gdk_gc_set_clip_origin()).
 
 </para>
 
-@gc: 
-@rectangle: 
+@gc: a #GdkGC.
+@rectangle: the rectangle to clip to.
 
 
 <!-- ##### FUNCTION gdk_gc_set_clip_region ##### -->
 <para>
-
+Sets the clip mask for a graphics context from a region structure.
+The clip mask is interpreted relative to the clip origin. (See
+gdk_gc_set_clip_origin()).
 </para>
 
-@gc: 
-@region: 
+@gc: a #GdkGC.
+@region: the #GdkRegion.
 
 
 <!-- ##### FUNCTION gdk_gc_set_subwindow ##### -->
 <para>
-
+Sets how drawing with this GC on a window will affect child
+windows of that window. 
 </para>
 
-@gc: 
-@mode: 
+@gc: a #GdkGC.
+@mode: the subwindow mode.
 
 
 <!-- ##### ENUM GdkSubwindowMode ##### -->
 <para>
 
+Determines how drawing onto a window will affect child
+windows of that window. 
+
+<informaltable pgwide=1 frame="none" role="enum">
+<tgroup cols="2"><colspec colwidth="3*"><colspec colwidth="7*">
+<tbody>
+
+<row>
+<entry>GDK_CLIP_BY_CHILDREN</entry>
+<entry>only draw onto the window itself.</entry>
+</row>
+
+<row>
+<entry>GDK_INCLUDE_INFERIORS</entry>
+<entry>Draw onto the window and child windows.</entry>
+</row>
+
+</tbody></tgroup></informaltable>
 </para>
 
 @GDK_CLIP_BY_CHILDREN: 
@@ -322,28 +527,57 @@ Graphics Contexts
 
 <!-- ##### FUNCTION gdk_gc_set_exposures ##### -->
 <para>
-
+Sets whether copying non-visible portions of a drawable
+using this graphics context generate exposure events
+for the corresponding regions of the destination
+drawable. (See gdk_draw_pixmap()).
 </para>
 
-@gc: 
-@exposures: 
+@gc: a #GdkGC.
+@exposures: if %TRUE, exposure events will be generated.
 
 
 <!-- ##### FUNCTION gdk_gc_set_line_attributes ##### -->
 <para>
-
+Sets various attributes of how lines are drawn. See
+the corresponding members of GdkGCValues for full
+explanations of the arguments.
 </para>
 
-@gc: 
-@line_width: 
-@line_style: 
-@cap_style: 
-@join_style: 
+@gc: a #GdkGC.
+@line_width: the width of lines.
+@line_style: the dash-style for lines.
+@cap_style: the manner in which the ends of lines are drawn.
+@join_style: the in which lines are joined together.
 
 
 <!-- ##### ENUM GdkLineStyle ##### -->
 <para>
+Determines how lines are drawn.
 
+<informaltable pgwide=1 frame="none" role="enum">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
+
+<row>
+<entry>GDK_LINE_SOLID</entry>
+<entry>lines are drawn solid.</entry>
+</row>
+
+<row>
+<entry>GDK_LINE_ON_OFF_DASH</entry>
+<entry>even segments are drawn; odd segments are not drawn.</entry>
+</row>
+
+<row>
+<entry>GDK_LINE_DOUBLE_DASH</entry>
+<entry>even segments are normally. Odd segments are drawn 
+in the background color if the fill style is %GDK_SOLID,
+or in the background color masked by the stipple if the
+fill style is %GDK_STIPPLED.</entry>
+</row>
+
+</tbody></tgroup></informaltable>
 </para>
 
 @GDK_LINE_SOLID: 
@@ -352,7 +586,38 @@ Graphics Contexts
 
 <!-- ##### ENUM GdkCapStyle ##### -->
 <para>
+Determines how the end of lines are drawn.
+
+<informaltable pgwide=1 frame="none" role="struct">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
 
+<row>
+<entry>GDK_CAP_NOT_LAST</entry>
+<entry>the same as %GDK_CAP_BUTT for lines of non-zero width.
+       for zero width lines, the final point on the line
+       will not be drawn.</entry>
+</row>
+
+<row>
+<entry>GDK_CAP_BUTT</entry>
+<entry>the ends of the lines are drawn squared off and extending
+       to the coordinates of the end point.</entry>
+</row>
+
+<row>
+<entry>GDK_CAP_ROUND</entry>
+<entry>the ends of the lines are drawn as semicircles with the
+       diameter equal to the line width and centered at the
+       end point.</entry>
+</row>
+
+<row>
+<entry>GDK_CAP_PROJECTING</entry>
+<entry>the ends of the lines are drawn squared off and extending
+       half the width of the line beyond the end point.</entry>
+</row>
+</tbody></tgroup></informaltable>
 </para>
 
 @GDK_CAP_NOT_LAST: 
@@ -362,7 +627,29 @@ Graphics Contexts
 
 <!-- ##### ENUM GdkJoinStyle ##### -->
 <para>
+Determines how the joins between segments of a polygon are drawn.
+
+<informaltable pgwide=1 frame="none" role="struct">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
+
+<row>
+<entry>GDK_JOIN_MITER</entry>
+<entry>the sides of each line are extended to meet at an angle.</entry>
+</row>
 
+<row>
+<entry>GDK_JOIN_ROUND</entry>
+<entry>the sides of the two lines are joined by a circular arc.</entry>
+</row>
+
+<row>
+<entry>GDK_JOIN_BEVEL</entry>
+<entry>the sides of the two lines are joined by a straight line which
+       makes an equal angle with each line.</entry>
+</row>
+
+</tbody></tgroup></informaltable>
 </para>
 
 @GDK_JOIN_MITER: 
@@ -371,22 +658,28 @@ Graphics Contexts
 
 <!-- ##### FUNCTION gdk_gc_set_dashes ##### -->
 <para>
-
+Sets the way dashed-lines are drawn. Lines will be
+drawn with alternating on and off segments of the
+lengths specified in @dash_list. The manner in
+which the on and off segments are drawn is determined
+by the @line_style value of the GC. (This can
+be changed with gdk_gc_set_line_attributes)
 </para>
 
-@gc: 
-@dash_offset: 
-@dash_list: 
-@n: 
+@gc: a #GdkGC.
+@dash_offset: the
+@dash_list: an array of dash lengths.
+@n: the number of elements in @dash_list.
 
 
 <!-- ##### FUNCTION gdk_gc_copy ##### -->
 <para>
-
+Copy the set of values from one graphics context
+onto another graphics context.
 </para>
 
-@dst_gc: 
-@src_gc: 
+@dst_gc: the destination graphics context.
+@src_gc: the source graphics context.
 
 
 <!-- ##### FUNCTION gdk_gc_set_colormap ##### -->
index fb52e4a9e9d2dac43c9a96df33c45446aef0c259..7e2703d4a13d624d32e6ea5ccab694bc7b1679d1 100644 (file)
+<!-- ##### SECTION ./tmpl/color_contexts.sgml:Long_Description ##### -->
+<para>
+The #GdkColorContext type is used for allocating groups of colors.
+</para>
+<para>
+It is now deprecated in favor of the gdk_colormap_*() functions described in
+the <link linkend="gdk-Colormaps-and-Colors">Colormaps and Colors</link>
+section.
+</para>
+
+
+<!-- ##### SECTION ./tmpl/color_contexts.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/color_contexts.sgml:Short_Description ##### -->
+routines for allocating colors (deprecated).
+
+
+<!-- ##### SECTION ./tmpl/color_contexts.sgml:Title ##### -->
+Color Contexts
+
+
+<!-- ##### SECTION ./tmpl/colors.sgml:Long_Description ##### -->
+<para>
+These functions are used to modify colormaps.
+A colormap is an object that contains the mapping
+between the color values stored in memory and
+the RGB values that are used to display color
+values. In general, colormaps only contain
+significant information for pseudo-color visuals,
+but even for other visual types, a colormap object
+is required in some circumstances.
+</para>
+
+<para>
+There are a couple of special colormaps that can
+be retrieved. The system colormap (retrieved 
+with gdk_colormap_get_system()) is the default
+colormap of the system. If you are using GdkRGB,
+there is another colormap that is important - the
+colormap in which GdkRGB works, retrieved with
+gdk_rgb_get_cmap(). However, when using GdkRGB, 
+it is not generally necessary to allocate colors
+directly.
+</para>
+
+<para>
+In previous revisions of this interface, a number
+of functions that take a #GdkColormap parameter
+were replaced with functions whose names began
+with "gdk_colormap_". This process will probably
+be extended somewhat in the future - 
+gdk_color_white(), gdk_color_black(), and 
+gdk_color_change() will probably become aliases.
+</para>
+
+
+<!-- ##### SECTION ./tmpl/colors.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/colors.sgml:Short_Description ##### -->
+manipulation of colors and colormaps.
+
+
+<!-- ##### SECTION ./tmpl/colors.sgml:Title ##### -->
+Colormaps and Colors
+
+
+<!-- ##### SECTION ./tmpl/cursors.sgml:Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/cursors.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/cursors.sgml:Short_Description ##### -->
+standard and pixmap cursors.
+
+
+<!-- ##### SECTION ./tmpl/cursors.sgml:Title ##### -->
+Cursors
+
+
+<!-- ##### SECTION ./tmpl/dnd.sgml:Long_Description ##### -->
+<para>
+These functions provide a low level interface for drag and drop.
+GDK supports both the Xdnd and Motif drag and drop protocols transparently.
+</para>
+<para>
+GTK+ provides a higher level abstraction based on top of these functions,
+and so they are not normally needed in GTK+ applications.
+See the <link linkend="gtk-Drag-and-Drop">Drag and Drop</link> section of
+the GTK+ documentation for more information.
+</para>
+
+
+<!-- ##### SECTION ./tmpl/dnd.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/dnd.sgml:Short_Description ##### -->
+functions for controlling drag and drop handling.
+
+
+<!-- ##### SECTION ./tmpl/dnd.sgml:Title ##### -->
+Drag and Drop
+
+
+<!-- ##### SECTION ./tmpl/drawing.sgml:Long_Description ##### -->
+<para>
+These functions provide support for drawing points, lines, arcs and text
+onto what are called 'drawables'. Drawables, as the name suggests, are things
+which support drawing onto them, and are either #GdkWindow or #GdkPixmap
+objects.
+</para>
+<para>
+Many of the drawing operations take a #GdkGC argument, which represents a
+graphics context. This #GdkGC contains a number of drawing attributes such
+as foreground color, background color and line width, and is used to reduce
+the number of arguments needed for each drawing operation. See the
+<link linkend="gdk-Graphics-Contexts">Graphics Contexts</link> section for
+more information.
+</para>
+
+
+<!-- ##### SECTION ./tmpl/drawing.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/drawing.sgml:Short_Description ##### -->
+functions for drawing points, lines, arcs, and text.
+
+
+<!-- ##### SECTION ./tmpl/drawing.sgml:Title ##### -->
+Drawing Primitives
+
+
+<!-- ##### SECTION ./tmpl/event_structs.sgml:Long_Description ##### -->
+<para>
+The event structs contain data specific to each type of event in GDK.
+</para>
+<note>
+<para>
+A common mistake is to forget to set the event mask of a widget so that the
+required events are received. See gtk_widget_set_events().
+</para>
+</note>
+
+
+<!-- ##### SECTION ./tmpl/event_structs.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/event_structs.sgml:Short_Description ##### -->
+data structures specific to each type of event.
+
+
+<!-- ##### SECTION ./tmpl/event_structs.sgml:Title ##### -->
+Event Structures
+
+
+<!-- ##### SECTION ./tmpl/events.sgml:Long_Description ##### -->
+<para>
+This section describes functions dealing with events from the window system.
+</para>
+<para>
+In GTK+ applications the events are handled automatically in
+gtk_main_do_event() and passed on to the appropriate widgets, so these
+functions are rarely needed. Though some of the fields in the
+<link linkend="gdk-Event-Structures">Event Structures</link> are useful.
+</para>
+
+
+<!-- ##### SECTION ./tmpl/events.sgml:See_Also ##### -->
+<para>
+<variablelist>
+<varlistentry>
+<term><link linkend="gdk-Event-Structures">Event Structures</link></term>
+<listitem><para>
+The structs used for each type of event.
+</para></listitem>
+</varlistentry>
+</variablelist>
+</para>
+
+
+<!-- ##### SECTION ./tmpl/events.sgml:Short_Description ##### -->
+functions for handling events from the window system.
+
+
+<!-- ##### SECTION ./tmpl/events.sgml:Title ##### -->
+Events
+
+
+<!-- ##### SECTION ./tmpl/fonts.sgml:Long_Description ##### -->
+<para>
+The GdkFont data type represents a font for drawing on
+the screen. These functions provide support for
+loading fonts, and also for determining the dimensions
+of characters and strings when drawn with a particular
+font.
+</para>
+
+<para>
+Fonts in X are specified by a
+<firstterm>X Logical Font Description</firstterm>. 
+The following description is considerably simplified.
+For definitive information about XLFD's see the 
+X reference documentation. A X Logical Font Description (XLFD)
+consists of a sequence of fields separated (and surrounded by) '-'
+characters. For example, Adobe Helvetica Bold 12 pt, has the
+full description: 
+
+<programlisting>
+"-adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859-1"
+</programlisting>
+</para>
+
+<para>
+The fields in the XLFD are:
+
+<informaltable pgwide=1 frame="none">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
+
+<row>
+<entry>Foundry</entry>
+<entry>the company or organization where the font originated.</entry>
+</row>
+
+<row>
+<entry>Family</entry>
+<entry>the font family (a group of related font designs).</entry>
+</row>
+
+<row>
+<entry>Weight</entry>
+<entry>A name for the font's typographic weight
+For example, 'bold' or 'medium').</entry>
+</row>
+
+<row>
+<entry>Slant</entry>
+<entry>The slant of the font. Common values are 'R' for Roman,
+'I' for italoc, and 'O' for oblique.</entry>
+</row>
+
+<row>
+<entry>Set Width</entry>
+<entry>A name for the width of the font. For example,
+'normal' or 'condensed'.</entry>
+</row>
+
+<row>
+<entry>Add Style</entry>
+<entry>Additional information to distinguish a font from
+other fonts of the same family.</entry>
+</row>
+
+<row>
+<entry>Pixel Size</entry>
+<entry>The body size of the font in pixels.</entry>
+</row>
+
+<row>
+<entry>Point Size</entry>
+<entry>The body size of the font in 10ths of a point.
+(A <firstterm>point</firstterm> is 1/72.27 inch) </entry>
+</row>
+
+<row>
+<entry>Resolution X</entry>
+<entry>The horizontal resolution that the font was designed for.</entry>
+</row>
+
+<row>
+<entry>Resolution Y</entry>
+<entry>The vertical resolution that the font was designed for .</entry>
+</row>
+
+<row>
+<entry>Spacing</entry>
+<entry>The type of spacing for the font - can be 'p' for proportional,
+'m' for monospaced or 'c' for charcell.</entry>
+</row>
+
+<row>
+<entry>Average Width</entry>
+<entry>The average width of a glyph in the font. For monospaced
+and charcell fonts, all glyphs in the font have this width</entry>
+</row>
+
+<row>
+<entry>Charset Registry</entry>
+<entry>The registration authority that owns the encoding for
+the font. Together with the Charset Encoding field, this
+defines the character set for the font.</entry>
+</row>
+
+<row>
+<entry>Charset Encoding</entry>
+<entry>An identifier for the particular character set encoding.</entry>
+</row>
+
+</tbody></tgroup></informaltable>
+</para>
+
+<para>
+When specifying a font via a X logical Font Description,
+'*' can be used as a wildcard to match any portion of
+the XLFD. For instance, the above example could
+also be specified as
+
+<programlisting>
+"-*-helvetica-bold-r-normal--*-120-*-*-*-*-iso8859-1"
+</programlisting>
+
+It is generally a good idea to use wildcards for any
+portion of the XLFD that your program does not care
+about specifically, since that will improve the
+chances of finding a matching font.
+</para>
+
+<para>
+A <firstterm>fontset</firstterm> is a list of fonts
+that is used for drawing international text that may
+contain characters from a number of different character
+sets. It is represented by a list of XLFD's. 
+</para>
+
+<para>
+The font for a given character set is determined by going
+through the list of XLFD's in order. For each one, if
+the registry and and encoding fields match the desired
+character set, then that font is used, otherwise if
+the XLFD contains wild-cards for the registry and encoding
+fields, the registry and encoding for the desired character
+set are subsituted in and a lookup is done. If a match is found
+that font is used. Otherwise, processing continues
+on to the next font in the list.
+</para>
+
+<para>
+The functions for determining the metrics of a string
+come in several varieties that can take a number
+of forms of string input:
+
+<variablelist>
+  <varlistentry>
+    <term>8-bit string</term>
+    <listitem><para>
+    When using functions like gdk_string_width() that
+    take a <type>gchar *</type>, if the font is of type
+    %GDK_FONT_FONT and is an 8-bit font, then each
+    <type>gchar</type> indexes the glyphs in the font directly.
+    </para></listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>16-bit string</term>
+    <listitem><para>
+    For functions taking a <type>gchar *</type>, if the
+    font is of type %GDK_FONT_FONT, and is a 16-bit
+    font, then the <type>gchar *</type> argument is
+    interpreted as a <type>guint16 *</type> cast to
+    a <type>gchar *</type> and each <type>guint16</type>
+    indexes the glyphs in the font directly.
+    </para></listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>Multibyte string</term>
+    <listitem><para>
+    For functions taking a <type>gchar *</type>, if the
+    font is of type %GDK_FONT_FONTSET, then the input
+    string is interpreted as a <firstterm>multibyte</firstterm>
+    encoded according to the current locale. (A multibyte
+    string is one in which each character may consist
+    of one or more bytes, with different lengths for different
+    characters in the string). They can be converted to and
+    from wide character strings (see below) using
+    gdk_wcstombs() and gdk_mbstowcs().) The string will
+    be rendered using one or more different fonts from
+    the fontset.
+    </para></listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>Wide character string</term>
+    <listitem><para>
+    For a number of the text-measuring functions, GTK+
+    provides a variant (such as gdk_text_width_wc()) which
+    takes a <type>GdkWChar *</type> instead of a 
+    <type>gchar *</type>. The input is then taken to
+    be a wide character string in the encoding of the
+    current locale. (A wide character string is a string
+    in which each character consists of several bytes,
+    and the width of each character in the string is 
+    constant.)
+    </para></listitem>
+  </varlistentry>
+</variablelist>
+</para>
+
+<para>
+GDK provides functions to determine a number of different
+measurements (metrics) for a given string. (Need diagram
+here).
+
+<variablelist>
+  <varlistentry>
+    <term>ascent</term>
+    <listitem><para>
+    The vertical distance from the origin of the drawing
+    opereration to the top of the drawn character.
+    </para></listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>descent</term>
+    <listitem><para>
+    The vertical distance from the origin of the drawing
+    opereration to the bottom of the drawn character.
+    </para></listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>left bearing</term>
+    <listitem><para>
+    The horizontal distance from the origin of the drawing
+    operation to the left-most part of the drawn character.
+    </para></listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>right bearing</term>
+    <listitem><para>
+    The horizontal distance from the origin of the drawing
+    operation to the right-most part of the drawn character.
+    </para></listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>width bearing</term>
+    <listitem><para>
+    The horizontal distance from the origin of the drawing
+    operation to the correct origin for drawing another
+    string to follow the current one. Depending on the
+    font, this could be greater than or less than the 
+    right bearing.
+    </para></listitem>
+  </varlistentry>
+</variablelist>
+</para>
+
+
+<!-- ##### SECTION ./tmpl/fonts.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/fonts.sgml:Short_Description ##### -->
+loading and manipulating fonts
+
+
+<!-- ##### SECTION ./tmpl/fonts.sgml:Title ##### -->
+Fonts
+
+
+<!-- ##### SECTION ./tmpl/gcs.sgml:Long_Description ##### -->
+<para>
+All drawing operations in GDK take a 
+<firstterm>graphics context</firstterm> (GC) argument. 
+A graphics context encapsulates information about
+the way things are drawn, such as the foreground
+color or line width. By using graphics contexts, 
+the number of arguments to each drawing call is
+greatly reduced, and communication overhead is
+minimized, since identical arguments do not need
+to be passed repeatedly.
+</para>
+<para>
+Most values of a graphics context can be set at
+creation time by using gdk_gc_new_with_values(),
+or can be set one-by-one using functions such
+as gdk_gc_set_foreground(). A few of the values
+in the GC, such as the dash pattern, can only
+be set by the latter method.
+</para>
+
+
+<!-- ##### SECTION ./tmpl/gcs.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/gcs.sgml:Short_Description ##### -->
+objects to encapsulate drawing properties.
+
+
+<!-- ##### SECTION ./tmpl/gcs.sgml:Title ##### -->
+Graphics Contexts
+
+
+<!-- ##### SECTION ./tmpl/gdkkeys.sgml:Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/gdkkeys.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/gdkkeys.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/gdkkeys.sgml:Title ##### -->
+Keyboard Handling
+
+
+<!-- ##### SECTION ./tmpl/gdkregion.sgml:Long_Description ##### -->
+<para>
+
+</para>
+
+
 <!-- ##### SECTION ./tmpl/gdkregion.sgml:See_Also ##### -->
 <para>
 
 </para>
 
 
-<!-- ##### FUNCTION gdk_regions_xor ##### -->
+<!-- ##### SECTION ./tmpl/gdkregion.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/gdkregion.sgml:Title ##### -->
+Points, Rectangles and Regions
+
+
+<!-- ##### SECTION ./tmpl/input.sgml:Long_Description ##### -->
+<para>
+The functions in this section are used to establish
+callbacks when some condition becomes true for
+a file descriptor. They are currently just wrappers around
+the <link linkend="glib-IO-Channels">IO Channel</link>
+facility.
+</para>
+
+
+<!-- ##### SECTION ./tmpl/input.sgml:See_Also ##### -->
+<para>
+<variablelist>
+
+<varlistentry>
+<term><link linkend="glib-The-Main-Event-Loop">GLib Main Loop</link></term>
+<listitem><para>The main loop in which input callbacks run.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><link linkend="glib-IO-Channels">IO Channels</link></term>
+<listitem><para>A newer and more flexible way of doing IO
+callbacks.</para></listitem>
+</varlistentry>
+
+</variablelist>
+</para>
+
+
+<!-- ##### SECTION ./tmpl/input.sgml:Short_Description ##### -->
+Callbacks on file descriptors.
+
+
+<!-- ##### SECTION ./tmpl/input.sgml:Title ##### -->
+Input
+
+
+<!-- ##### SECTION ./tmpl/input_contexts.sgml:Long_Description ##### -->
+<para>
+A #GdkIC input context is used for each user interface element which supports
+internationalized text input. See the
+<link linkend="gdk-Input-Methods">Input Methods</link> section for an overview
+of how internationalized text input works in GTK+.
+</para>
+
+
+<!-- ##### SECTION ./tmpl/input_contexts.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/input_contexts.sgml:Short_Description ##### -->
+internationalized text input properties.
+
+
+<!-- ##### SECTION ./tmpl/input_contexts.sgml:Title ##### -->
+Input Contexts
+
+
+<!-- ##### SECTION ./tmpl/input_devices.sgml:Long_Description ##### -->
+<para>
+In addition to the normal keyboard and mouse input devices, GTK+ also
+contains support for <firstterm>extended input devices</firstterm>. In
+particular, this support is targeted at graphics tablets. Graphics
+tablets typically return sub-pixel positioning information and possibly
+information about the pressure and tilt of the stylus. Under
+X, the support for extended devices is done through the 
+<firstterm>XInput</firstterm> extension.
+</para>
+<para>
+Because handling extended input devices may involve considerable
+overhead, they need to be turned on for each #GdkWindow
+individually using gdk_input_set_extension_events().
+(Or, more typically, for GtkWidgets, using gtk_widget_set_extension_events()).
+As an additional complication, depending on the support from
+the windowing system, its possible that a normal mouse
+cursor will not be displayed for a particular extension
+device. If an application does not want to deal with displaying
+a cursor itself, it can ask only to get extension events
+from devices that will display a cursor, by passing the
+%GDK_EXTENSION_EVENTS_CURSOR value to
+gdk_input_set_extension_events(). Otherwise, the application
+must retrieve the device information using gdk_input_list_devices(),
+check the <structfield>has_cursor</structfield> field, and, 
+if it is %FALSE, draw a cursor itself when it receives 
+motion events.
+</para>
+<para>
+Each pointing device is assigned a unique integer ID; events from a
+particular device can be identified by the
+<structfield>deviceid</structfield> field in the event structure. The
+events generated by pointer devices have also been extended to contain
+<structfield>pressure</structfield>, <structfield>xtilt</structfield>
+and <structfield>ytilt</structfield> fields which contain the extended
+information reported as additional <firstterm>valuators</firstterm>
+from the device. The <structfield>pressure</structfield> field is a 
+a double value ranging from 0.0 to 1.0, while the tilt fields are
+double values ranging from -1.0 to 1.0. (With -1.0 representing the
+maximum title to the left or up, and 1.0 representing the maximum
+tilt to the right or down.)
+</para>
+<para>
+One additional field in each event is the
+<structfield>source</structfield> field, which contains an
+enumeration value describing the type of device; this currently
+can be one of 
+%GDK_SOURCE_MOUSE,
+ %GDK_SOURCE_PEN,
+%GDK_SOURCE_ERASER,
+or %GDK_SOURCE_CURSOR. This field is present to allow simple
+applications to (for instance) delete when they detect eraser
+devices without having to keep track of complicated per-device
+settings.
+</para>
+<para>
+Various aspects of each device may be configured. The easiest way of
+creating a GUI to allow the user to conifigure such a device
+is to use to use the #GtkInputDialog widget in GTK+. 
+However, even when using this widget, application writers
+will need to directly query and set the configuration parameters
+in order to save the state between invocations of the application.
+The configuration of devices is queried using gdk_input_list_devices.
+Each device must is activated using gdk_input_set_mode(), which
+also controls whether the device's range is mapped to the
+entire screen or to a single window. The mapping of the valuators of
+the device onto the predefined valuator types is set using
+gdk_input_set_axes. And the source type for each device
+can be set with gdk_input_set_source().
+</para>
+<para>
+Devices may also have associated <firstterm>keys</firstterm>
+or macro buttons. Such keys can be globally set to map
+into normal X keyboard events. The mapping is set using
+gdk_input_set_key().
+</para>
+<para>
+The interfaces in this section will most likely be considerably
+modified in the future to accomodate devices that may have different
+sets of additional valuators than the pressure xtilt and ytilt.
+</para>
+
+
+<!-- ##### SECTION ./tmpl/input_devices.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/input_devices.sgml:Short_Description ##### -->
+Functions for handling extended input devices.
+
+
+<!-- ##### SECTION ./tmpl/input_devices.sgml:Title ##### -->
+Input Devices
+
+
+<!-- ##### SECTION ./tmpl/input_methods.sgml.sgml:Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/input_methods.sgml.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/input_methods.sgml.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/input_methods.sgml.sgml:Title ##### -->
+Pango Interaction
+
+
+<!-- ##### SECTION ./tmpl/input_methods.sgml:Long_Description ##### -->
+<para>
+Input Methods provide a way for complex character sets to be used in GTK+.
+Languages such as Chinese, Japanese, and Korean (often abbreviated to CJK)
+use a large number of ideographs, making it impossible to support all
+characters with a simple keyboard. Instead, text is usually
+<emphasis>pre-edited</emphasis> using a phonetic alphabet and then
+<emphasis>composed</emphasis> to form the ideographs.
+</para>
+<para>
+GTK+ makes use of the input method mechanism provided by the X Windows
+platform. When a GTK+ application is started, it opens a connection to the
+input method appropriate for the current locale (if any). 
+</para>
+<para>
+Widgets which handle textual input, such as #GtkEntry, need to do a number of
+things to support internationalized text input:
+<variablelist>
+<varlistentry>
+<term>When the widget is realized:</term>
+<listitem><para>Check if an input method is being used with gdk_im_ready().
+If it is, create a new <link linkend="gdk-Input-Contexts">Input Context</link>
+using gdk_ic_new(). Find out which events the
+<link linkend="gdk-Input-Contexts">Input Context</link> needs to receive
+with gdk_ic_get_events(), and make sure that the widget's window receives
+these events using gdk_window_set_events().
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term>When the widget's size, state or cursor position changes:</term>
+<listitem><para>
+Update the appropriate
+<link linkend="gdk-Input-Contexts">Input Context</link> attributes
+using gdk_ic_set_attr().
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term>When the keyboard focus enters or leaves the widget:</term>
+<listitem><para>
+Call gdk_im_begin() or gdk_im_end() to start or finish editing the text.
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term>When the widget receives a key_press event:</term>
+<listitem><para>
+The <structfield>string</structfield> and <structfield>length</structfield>
+fields of the #GdkEventKey struct should be used to insert the composed text
+into the widget.
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term>When the widget is unrealized:</term>
+<listitem><para>
+Destroy the <link linkend="gdk-Input-Contexts">Input Context</link>.
+</para></listitem>
+</varlistentry>
+</variablelist>
+
+</para>
+<para>
+See the XLib reference manual for more detailed information on input methods,
+and the #GtkEntry and #GtkText widgets for some example code.
+</para>
+
+
+<!-- ##### SECTION ./tmpl/input_methods.sgml:See_Also ##### -->
+<para>
+<variablelist>
+<varlistentry>
+<term><link linkend="gdk-Input-Contexts">Input Contexts</link></term>
+<listitem><para>
+Used for each widget that handles internationalized text input using the
+global input method.
+</para></listitem>
+</varlistentry>
+</variablelist>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/input_methods.sgml:Short_Description ##### -->
+support for internationalized text input.
+
+
+<!-- ##### SECTION ./tmpl/input_methods.sgml:Title ##### -->
+Input Methods
+
+
+<!-- ##### SECTION ./tmpl/keys.sgml:Long_Description ##### -->
+<para>
+Key values are the codes which are sent whenever a key is pressed or released.
+They appear in the <structfield>keyval</structfield> field of the
+#GdkEventKey structure, which is passed to signal handlers for the
+"key-press-event" and "key-release-event" signals.
+The complete list of key values can be found in the &lt;gdk/gdkkeysyms.h&gt;
+header file.
+</para>
+<para>
+Key values can be converted into a string representation using
+gdk_keyval_name(). The reverse function, converting a string to a key value,
+is provided by gdk_keyval_from_name().
+</para>
+<para>
+The case of key values can be determined using gdk_keyval_is_upper() and
+gdk_keyval_is_lower(). Key values can be converted to upper or lower case
+using gdk_keyval_to_upper() and gdk_keyval_to_lower().
+</para>
+
+
+<!-- ##### SECTION ./tmpl/keys.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/keys.sgml:Short_Description ##### -->
+functions for manipulating keyboard codes.
+
+
+<!-- ##### SECTION ./tmpl/keys.sgml:Title ##### -->
+Key Values
+
+
+<!-- ##### SECTION ./tmpl/pango_interaction.sgml:Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/pango_interaction.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/pango_interaction.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/pango_interaction.sgml:Title ##### -->
+Pango Interaction
+
+
+<!-- ##### SECTION ./tmpl/pixbufs.sgml:Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/pixbufs.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/pixbufs.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/pixbufs.sgml:Title ##### -->
+Pixbufs
+
+
+<!-- ##### SECTION ./tmpl/properties.sgml:Long_Description ##### -->
+<para>
+Each window under X can have any number of associated
+<firstterm>properties</firstterm> attached to it.
+Properties are arbitrary chunks of data identified by
+<firstterm>atom</firstterm>s. (An <firstterm>atom</firstterm>
+is a numeric index into a string table on the X server. They are used
+to transfer strings efficiently between clients without
+having to transfer the entire string.) A property
+has an associated type, which is also identified
+using an atom.
+</para>
+<para>
+A property has an associated <firstterm>format</firstterm>,
+an integer describing how many bits are in each unit
+of data inside the property. It must be 8, 16, or 32.
+When data is transfered between the server and client,
+if they are of different endianesses it will be byteswapped
+as necessary according to the format of the property.
+Note that on the client side, properties of format 32
+will be stored with one unit per <emphasis>long</emphasis>,
+even if a long integer has more than 32 bits on the platform.
+(This decision was apparently made for Xlib to maintain
+compatibility with programs that assumed longs were 32
+bits, at the expense of programs that knew better.)
+</para>
+<para>
+The functions in this section are used to add, remove
+and change properties on windows, to convert atoms
+to and from strings and to manipulate some types of
+data commonly stored in X window properties.
+</para>
+
+
+<!-- ##### SECTION ./tmpl/properties.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/properties.sgml:Short_Description ##### -->
+functions to manipulate properties on windows.
+
+
+<!-- ##### SECTION ./tmpl/properties.sgml:Title ##### -->
+Properties and Atoms
+
+
+<!-- ##### SECTION ./tmpl/regions.sgml:Long_Description ##### -->
+<para>
+GDK provides the #GdkPoint, #GdkRectangle, #GdkRegion and #GdkSpan data types
+for representing pixels and sets of pixels on the screen.
+</para>
+<para>
+#GdkPoint is a simple structure containing an x and y coordinate of a point.
+</para>
+<para>
+#GdkRectangle is a structure holding the position and size of a rectangle.
+The intersection of two rectangles can be computed with
+gdk_rectangle_intersect(). To find the union of two rectangles use
+gdk_rectangle_union().
+</para>
+<para>
+#GdkRegion is an opaque data type holding a set of arbitrary pixels, and is
+usually used for clipping graphical operations (see gdk_gc_set_clip_region()).
+</para>
+<para>
+#GdkSpan is a structure holding a spanline. A spanline is a horizontal line that
+is one pixel wide. It is mainly used when rasterizing other graphics primitives.
+It can be intersected to regions by using gdk_region_spans_intersect_foreach().
+</para>
+
+
+<!-- ##### SECTION ./tmpl/regions.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/regions.sgml:Short_Description ##### -->
+simple graphical data types.
+
+
+<!-- ##### SECTION ./tmpl/regions.sgml:Title ##### -->
+Points, Rectangles and Regions
+
+
+<!-- ##### SECTION ./tmpl/regions2.sgml:Long_Description ##### -->
+<para>
+GDK provides the #GdkPoint, #GdkRectangle and #GdkRegion data types for
+representing pixels and sets of pixels on the screen.
+</para>
+<para>
+#GdkPoint is a simple structure containing an x and y coordinate of a point.
+</para>
+<para>
+#GdkRectangle is a structure holding the position and size of a rectangle.
+The intersection of two rectangles can be computed with
+gdk_rectangle_intersect(). To find the union of two rectangles use
+gdk_rectangle_union().
+</para>
+<para>
+#GdkRegion is an opaque data type holding a set of arbitrary pixels, and is
+usually used for clipping graphical operations (see gdk_gc_set_clip_region()).
+</para>
+
+
+<!-- ##### SECTION ./tmpl/regions2.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/regions2.sgml:Short_Description ##### -->
+simple graphical data types.
+
+
+<!-- ##### SECTION ./tmpl/regions2.sgml:Title ##### -->
+Points, Rectangles and Regions
+
+
+<!-- ##### SECTION ./tmpl/rgb.sgml:Long_Description ##### -->
+<para>
+
+GdkRgb converts RGB, grayscale, and colormapped images into the native
+window pixel format and displays them. It takes care of colormaps,
+visuals, dithering, and management of the temporary buffers.
+
+</para>
+
+<para>
+You must call gdk_rgb_init() before using any GdkRgb functionality. If
+you fail to do so, expect coredumps. All Gtk+ widgets that use GdkRgb
+(including #GtkPreview) call gdk_rgb_init() in their class_init method.
+Thus, if you use GdkRgb only indirectly, you don't need to worry
+about it.
+</para>
+
+<para>
+GdkRgb tries to use the system default visual and colormap, but
+doesn't always succeed. Thus, you have to be prepared to install the
+visual and colormap generated by GdkRgb. The following code sequence
+(before any widgets are created) should work in most applications:
+</para>
+
+<informalexample>
+<programlisting>
+  gdk_rgb_init ();
+
+  gtk_widget_set_default_colormap (gdk_rgb_get_cmap ());
+  gtk_widget_set_default_visual (gdk_rgb_get_visual ());
+</programlisting>
+</informalexample>
+
+<para>
+You can also push the colormap and visual, but in general it doesn't
+work unless the push wraps the window creation call. If you wrap the
+push around a widget which is embedded in a window without the GdkRgb
+colormap and visual, it probably won't work, and is likely to cause
+colormap flashing, as well.
+</para>
+
+<para>
+On 8-bit systems, the colormaps used by Imlib and GdkRgb may
+conflict. There is no good general solution to this other than phasing
+out the dependence on Imlib.
+</para>
+
+<para>
+You can set the threshold for installing colormaps with
+gdk_rgb_set_min_colors (). The default is 5x5x5 (125). If a colorcube
+of this size or larger can be allocated in the default colormap, then
+that's done. Otherwise, GdkRgb creates its own private colormap.
+Setting it to 0 means that it always tries to use the default
+colormap, and setting it to 216 means that it always creates a private
+one if it cannot allocate the 6x6x6 colormap in the default. If you
+always want a private colormap (to avoid consuming too many colormap
+entries for other apps, say), you can use gdk_rgb_set_install(TRUE).
+Setting the value greater than 216 exercises a bug in older versions
+of GdkRgb. Note, however, that setting it to 0 doesn't let you get
+away with ignoring the colormap and visual - a colormap is always
+created in grayscale and direct color modes, and the visual is changed
+in cases where a "better" visual than the default is available.
+</para>
+
+<example>
+<title>A simple example program using GdkRGB.</title>
+<programlisting>
+#include &lt;gtk/gtk.h&gt;
+
+#define IMAGE_WIDTH    256
+#define IMAGE_HEIGHT   256
+
+guchar rgbbuf[IMAGE_WIDTH * IMAGE_HEIGHT * 3];
+
+gboolean on_darea_expose (GtkWidget *widget,
+                         GdkEventExpose *event,
+                         gpointer user_data);
+
+int
+main (int argc, char *argv[])
+{
+  GtkWidget *window, *darea;
+  gint x, y;
+  guchar *pos;
+
+  gtk_init (&amp;argc, &amp;argv);
+  gdk_rgb_init ();
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  darea = gtk_drawing_area_new ();
+  gtk_drawing_area_size (GTK_DRAWING_AREA (darea), IMAGE_WIDTH, IMAGE_HEIGHT);
+  gtk_container_add (GTK_CONTAINER (window), darea);
+  gtk_signal_connect (GTK_OBJECT (darea), "expose-event",
+                      GTK_SIGNAL_FUNC (on_darea_expose), NULL);
+  gtk_widget_show_all (window);
+
+  /* Set up the RGB buffer. */
+  pos = rgbbuf;
+  for (y = 0; y < IMAGE_HEIGHT; y++)
+    {
+      for (x = 0; x < IMAGE_WIDTH; x++)
+       {
+         *pos++ = x - x % 32;                  /* Red. */
+         *pos++ = (x / 32) * 4 + y - y % 32;   /* Green. */
+         *pos++ = y - y % 32;                  /* Blue. */
+       }
+    }
+
+  gtk_main ();
+  return 0;
+}
+
+
+gboolean
+on_darea_expose (GtkWidget *widget,
+                GdkEventExpose *event,
+                gpointer user_data)
+{
+  gdk_draw_rgb_image (widget->window, widget->style->fg_gc[GTK_STATE_NORMAL],
+                     0, 0, IMAGE_WIDTH, IMAGE_HEIGHT,
+                     GDK_RGB_DITHER_MAX, rgbbuf, IMAGE_WIDTH * 3);
+}
+</programlisting>
+</example>
+
+
+<!-- ##### SECTION ./tmpl/rgb.sgml:See_Also ##### -->
+<para>
+<variablelist>
+
+<varlistentry>
+<term>#GdkColor</term>
+<listitem><para>The underlying Gdk mechanism for allocating
+colors.</para></listitem>
+</varlistentry>
+
+</variablelist>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/rgb.sgml:Short_Description ##### -->
+displays RGB images (as well as grayscale and colormapped) to
+the native window.
+
+
+<!-- ##### SECTION ./tmpl/rgb.sgml:Title ##### -->
+GdkRGB
+
+
+<!-- ##### SECTION ./tmpl/selections.sgml:Long_Description ##### -->
+<para>
+The X selection mechanism provides a way to transfer
+arbitrary chunks of data between programs. 
+A <firstterm>selection</firstterm> is a essentially 
+a named clipboard, identified by a string interned
+as a #GdkAtom. By claiming ownership of a selection,
+an application indicates that it will be responsible
+for supplying its contents. The most common 
+selections are <literal>PRIMARY</literal> and 
+<literal>CLIPBOARD</literal>.
+</para>
+<para>
+The contents of a selection can be represented in
+a number of formats, called <firstterm>targets</firstterm>.
+Each target is identified by an atom. A list of
+all possible targets supported by the selection owner
+can be retrieved by requesting the special target
+<literal>TARGETS</literal>. When a selection is 
+retrieved, the data is accompanied by a type
+(an atom), and a format (an integer, representing
+the number of bits per item).
+See <link linkend="gdk-Properties-and-Atoms">Properties and Atoms</link>
+for more information.
+</para>
+<para>
+The functions in this section only contain the lowlevel
+parts of the selection protocol. A considerably more
+complicated implementation is needed on top of this.
+GTK+ contains such an implementation in the functions
+in <literal>gtkselection.h</literal> and programmers
+should use those functions instead of the ones presented 
+here. If you plan to implement selection handling
+directly on top of the functions here, you should refer
+to the X Inter-client Communication Conventions Manual
+(ICCCM).
+</para>
+
+
+<!-- ##### SECTION ./tmpl/selections.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/selections.sgml:Short_Description ##### -->
+functions for transfering data via the X selection mechanism.
+
+
+<!-- ##### SECTION ./tmpl/selections.sgml:Title ##### -->
+Selections
+
+
+<!-- ##### SECTION ./tmpl/threads.sgml:Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/threads.sgml:See_Also ##### -->
 <para>
-Returns the difference between the union and the intersection of two regions.
-This is a region containing the pixels that are in one of the source regions,
-but which are not in both.
+
 </para>
 
-@source1: a #GdkRegion.
-@source2: a #GdkRegion.
-@Returns: the difference between the union and the intersection of @source1
-and @source2.
 
-<!-- ##### FUNCTION gdk_input_motion_events ##### -->
+<!-- ##### SECTION ./tmpl/threads.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/threads.sgml:Title ##### -->
+Threads
+
+
+<!-- ##### SECTION ./tmpl/visuals.sgml:Long_Description ##### -->
 <para>
-Retrieves the motion history for a given device/window pair.
+The way that the data stored on the screen is stored
+in memory can vary considerably between different X
+servers; some X servers even support multiple formats
+used simultaneously. An X <firstterm>visual</firstterm>
+represents a particular format for screen data.
+It includes information about the number of bits
+used for each color, the way the bits are translated
+into an RGB value for display, and the way the bits
+are stored in memory.
+</para>
+<para>
+There are several standard visuals. The visual returned
+by gdk_visual_get_system() is the system's default
+visual. gdk_rgb_get_visual() return the visual most
+suited to displaying full-color image data. If you
+use the calls in GdkRGB, you should create your windows
+using this visual (and the colormap returned by
+gdk_rgb_get_colormap()).
+</para>
+<para>
+A number of functions are provided for determining
+the "best" available visual. For the purposes of
+making this determination, higher bit depths are
+considered better, and for visuals of the same
+bit depth, %GDK_VISUAL_PSEUDO_COLOR is preferred at
+8bpp, otherwise, the visual types are ranked in the
+order of (highest to lowest) %GDK_VISUAL_DIRECT_COLOR,
+%GDK_VISUAL_TRUE_COLOR, %GDK_VISUAL_PSEUDO_COLOR,
+%GDK_VISUAL_STATIC_COLOR, %GDK_VISUAL_GRAYSCALE, 
+then %GDK_VISUAL_STATIC_GRAY.
 </para>
 
-@window: a #GdkWindow.
-@deviceid: the device for which to retrieve motion history.
-@start: the start time.
-@stop: the stop time.
-@nevents_return: location to store the number of events returned.
-@Returns: a newly allocated array containing all the events
-          from @start to @stop. This array should be freed
-          with g_free() when you are finished using it.
 
-<!-- ##### SECTION ./tmpl/gdkkeys.sgml:See_Also ##### -->
+<!-- ##### SECTION ./tmpl/visuals.sgml:See_Also ##### -->
 <para>
 
 </para>
 
 
-<!-- ##### FUNCTION gdk_keymap_translate_keyboard_state ##### -->
+<!-- ##### SECTION ./tmpl/visuals.sgml:Short_Description ##### -->
+manipulation of visuals.
+
+
+<!-- ##### SECTION ./tmpl/visuals.sgml:Title ##### -->
+Visuals
+
+
+<!-- ##### SECTION ./tmpl/windows.sgml:Long_Description ##### -->
 <para>
 
 </para>
 
-@keymap: 
-@hardware_keycode: 
-@state: 
-@group: 
-@keyval: 
-@effective_group: 
-@level: 
-@unused_modifiers: 
-@Returns: 
 
-<!-- ##### FUNCTION gdk_keymap_get_entries_for_keyval ##### -->
+<!-- ##### SECTION ./tmpl/windows.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@keymap: 
-@keyval: 
-@keys: 
-@n_keys: 
-@Returns: 
 
-<!-- ##### SECTION ./tmpl/gdkregion.sgml:Long_Description ##### -->
+<!-- ##### SECTION ./tmpl/windows.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/windows.sgml:Title ##### -->
+Windows
+
+
+<!-- ##### SECTION ./tmpl/x_interaction.sgml:Long_Description ##### -->
 <para>
 
 </para>
 
 
-<!-- ##### SECTION ./tmpl/gdkkeys.sgml:Long_Description ##### -->
+<!-- ##### SECTION ./tmpl/x_interaction.sgml:See_Also ##### -->
 <para>
 
 </para>
 
 
-<!-- ##### SECTION ./tmpl/input_methods.sgml.sgml:Short_Description ##### -->
+<!-- ##### SECTION ./tmpl/x_interaction.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/x_interaction.sgml:Title ##### -->
+X Window System Interaction
+
+
+<!-- ##### MACRO GDK_CORE_POINTER ##### -->
+<para>
+This macro contains an integer value representing
+the device ID for the core pointer device.
+</para>
+
+
+<!-- ##### STRUCT GdkColorContext ##### -->
+<para>
+
+</para>
+
+@visual: 
+@colormap: 
+@num_colors: 
+@max_colors: 
+@num_allocated: 
+@mode: 
+@need_to_free_colormap: 
+@std_cmap_atom: 
+@clut: 
+@cmap: 
+@color_hash: 
+@palette: 
+@num_palette: 
+@fast_dither: 
+
+<!-- ##### STRUCT GdkColorContextDither ##### -->
+<para>
+
+</para>
+
+@fast_rgb: 
+@fast_err: 
+@fast_erg: 
+@fast_erb: 
+
+<!-- ##### ENUM GdkColorContextMode ##### -->
+<para>
 
+</para>
 
+@GDK_CC_MODE_UNDEFINED: 
+@GDK_CC_MODE_BW: 
+@GDK_CC_MODE_STD_CMAP: 
+@GDK_CC_MODE_TRUE: 
+@GDK_CC_MODE_MY_GRAY: 
+@GDK_CC_MODE_PALETTE: 
 
 <!-- ##### STRUCT GdkDeviceInfo ##### -->
 <para>
@@ -102,160 +1403,168 @@ device. It has the following fields:
        which describe what key press events are generated
        for each macro button.
 
-<!-- ##### SECTION ./tmpl/input_methods.sgml.sgml:Title ##### -->
-Pango Interaction
-
-
-<!-- ##### FUNCTION gdk_regions_union ##### -->
+<!-- ##### ENUM GdkPixbufAlphaMode ##### -->
 <para>
-Returns the union of two regions.
-This is all pixels in either of @source1 or @source2.
+
 </para>
 
-@source1: a #GdkRegion.
-@source2: a #GdkRegion.
-@Returns: the union of @source1 and @source2.
+@GDK_PIXBUF_ALPHA_BILEVEL: 
+@GDK_PIXBUF_ALPHA_FULL: 
 
-<!-- ##### FUNCTION gdk_drawable_get_visible_region ##### -->
+<!-- ##### FUNCTION gdk_color_context_add_palette ##### -->
 <para>
 
 </para>
 
-@drawable: 
+@cc: 
+@palette: 
+@num_palette: 
 @Returns: 
 
-<!-- ##### FUNCTION gdk_colormap_query_color ##### -->
+<!-- ##### FUNCTION gdk_color_context_free ##### -->
 <para>
 
 </para>
 
-@colormap: 
-@pixel: 
-@result: 
+@cc: 
 
-<!-- ##### FUNCTION gdk_event_get_state ##### -->
+<!-- ##### FUNCTION gdk_color_context_free_dither ##### -->
 <para>
 
 </para>
 
-@event: 
-@state: 
-@Returns: 
-
-<!-- ##### SECTION ./tmpl/gdkregion.sgml:Short_Description ##### -->
-
-
+@cc: 
 
-<!-- ##### FUNCTION gdk_window_get_decorations ##### -->
+<!-- ##### FUNCTION gdk_color_context_get_index_from_palette ##### -->
 <para>
 
 </para>
 
-@window: 
-@decorations: 
+@cc: 
+@red: 
+@green: 
+@blue: 
+@failed: 
 @Returns: 
 
-<!-- ##### FUNCTION gdk_keymap_get_entries_for_keycode ##### -->
+<!-- ##### FUNCTION gdk_color_context_get_pixel ##### -->
 <para>
 
 </para>
 
-@keymap
-@hardware_keycode
-@keys
-@keyvals
-@n_entries
+@cc
+@red
+@green
+@blue
+@failed
 @Returns: 
 
-<!-- ##### FUNCTION gdk_drawable_get_clip_region ##### -->
+<!-- ##### FUNCTION gdk_color_context_get_pixel_from_palette ##### -->
 <para>
 
 </para>
 
-@drawable: 
+@cc: 
+@red: 
+@green: 
+@blue: 
+@failed: 
 @Returns: 
 
-<!-- ##### FUNCTION gdk_input_set_key ##### -->
+<!-- ##### FUNCTION gdk_color_context_get_pixels ##### -->
 <para>
-Sets the key event generated when a macro button is pressed.
+
 </para>
 
-@deviceid: the device to configure.
-@index: the index of the macro button.
-@keyval: the key value for the #GdkKeypressEvent to generate.
-         (a value of 0 means no event will be generated.)
-@modifiers: the modifier field for the generated 
-            #GdkKeyPressEvent.
+@cc: 
+@reds: 
+@greens: 
+@blues: 
+@ncolors: 
+@colors: 
+@nallocated: 
 
-<!-- ##### FUNCTION gdk_input_list_devices ##### -->
+<!-- ##### FUNCTION gdk_color_context_get_pixels_incremental ##### -->
 <para>
-Lists all available input devices, along with their
-configuration information.
+
 </para>
 
-@Returns: A #GList of #GdkDeviceInfo structures. This list
-          is internal data of GTK+ and should not be modified 
-          or freed.
+@cc: 
+@reds: 
+@greens: 
+@blues: 
+@ncolors: 
+@used: 
+@colors: 
+@nallocated: 
 
-<!-- ##### STRUCT GdkKeymap ##### -->
+<!-- ##### FUNCTION gdk_color_context_init_dither ##### -->
 <para>
 
 </para>
 
-@parent_instance
+@cc
 
-<!-- ##### SECTION ./tmpl/input_methods.sgml.sgml:See_Also ##### -->
+<!-- ##### FUNCTION gdk_color_context_new ##### -->
 <para>
 
 </para>
 
+@visual: 
+@colormap: 
+@Returns: 
 
-<!-- ##### ENUM GdkPixbufAlphaMode ##### -->
+<!-- ##### FUNCTION gdk_color_context_new_mono ##### -->
 <para>
 
 </para>
 
-@GDK_PIXBUF_ALPHA_BILEVEL: 
-@GDK_PIXBUF_ALPHA_FULL: 
+@visual: 
+@colormap: 
+@Returns: 
 
-<!-- ##### FUNCTION gdk_regions_subtract ##### -->
+<!-- ##### FUNCTION gdk_color_context_query_color ##### -->
 <para>
-Subtracts one region from another.
-The result is a region containing all the pixels which are in @source1, but
-which are not in @source2.
+
 </para>
 
-@source1: a #GdkRegion.
-@source2: a #GdkRegion to subtract from @source1.
-@Returns: @source1 - @source2.
+@cc: 
+@color: 
+@Returns: 
 
-<!-- ##### FUNCTION gdk_input_window_get_pointer ##### -->
+<!-- ##### FUNCTION gdk_color_context_query_colors ##### -->
 <para>
-Returns information about the current position of the pointer
-within a window, including extended device information.
-Any of the return parameters may be %NULL, in which case,
-they will be ignored.
-</para>
 
-@window: a #GdkWindow.
-@deviceid: a device ID.
-@x: location to store current x postion.
-@y: location to store current y postion.
-@pressure: location to store current pressure.
-@xtilt: location to store current tilt in the x direction.
-@ytilt: location to store current tilt in the y direction.
-@mask: location to store the current modifier state.
+</para>
 
-<!-- ##### SECTION ./tmpl/gdkkeys.sgml:Short_Description ##### -->
+@cc: 
+@colors: 
+@num_colors: 
+@Returns: 
 
+<!-- ##### FUNCTION gdk_input_list_devices ##### -->
+<para>
+Lists all available input devices, along with their
+configuration information.
+</para>
 
+@Returns: A #GList of #GdkDeviceInfo structures. This list
+          is internal data of GTK+ and should not be modified 
+          or freed.
 
-<!-- ##### MACRO GDK_CORE_POINTER ##### -->
+<!-- ##### FUNCTION gdk_input_motion_events ##### -->
 <para>
-This macro contains an integer value representing
-the device ID for the core pointer device.
+Retrieves the motion history for a given device/window pair.
 </para>
 
+@window: a #GdkWindow.
+@deviceid: the device for which to retrieve motion history.
+@start: the start time.
+@stop: the stop time.
+@nevents_return: location to store the number of events returned.
+@Returns: a newly allocated array containing all the events
+          from @start to @stop. This array should be freed
+          with g_free() when you are finished using it.
 
 <!-- ##### FUNCTION gdk_input_set_axes ##### -->
 <para>
@@ -267,23 +1576,28 @@ onto the predefined valuator types that GTK+ understands.
 @axes: an array of GdkAxisUse. This length of this array
        must match the number of axes for the device.
 
-<!-- ##### STRUCT GdkSpan ##### -->
+<!-- ##### FUNCTION gdk_input_set_key ##### -->
 <para>
-
+Sets the key event generated when a macro button is pressed.
 </para>
 
-@x: 
-@y: 
-@width: 
+@deviceid: the device to configure.
+@index: the index of the macro button.
+@keyval: the key value for the #GdkKeypressEvent to generate.
+         (a value of 0 means no event will be generated.)
+@modifiers: the modifier field for the generated 
+            #GdkKeyPressEvent.
 
-<!-- ##### STRUCT GdkKeyInfo ##### -->
+<!-- ##### FUNCTION gdk_input_set_mode ##### -->
 <para>
-
+Enables or disables a device, and determines how the
+device maps onto the screen.
 </para>
 
-@keycode: 
-@group: 
-@level: 
+@deviceid: the device to configure.
+@mode: the new mode.
+@Returns: %TRUE if the device supports the given mode, otherwise 
+          %FALSE and the device's mode is unchanged.
 
 <!-- ##### FUNCTION gdk_input_set_source ##### -->
 <para>
@@ -293,30 +1607,22 @@ Sets the source type for a device.
 @deviceid: the device to configure
 @source: the new source type.
 
-<!-- ##### FUNCTION gdk_region_spans_intersect_foreach ##### -->
-<para>
-Intersects a set of spans with a region and call a user specified
-function for each resulting spanline. This function is a lot more effective
-if the spans are sorted.
-</para>
-
-@region: The region to intersect against.
-@spans: Array of spans to intersect.
-@n_spans: Number of spans.
-@sorted: True if the spans are sorted in increasing y order.
-@function: The function to call for each intersected spanline.
-@data: Opaque user data passed to function.
-
-<!-- ##### FUNCTION gdk_keymap_get_default ##### -->
+<!-- ##### FUNCTION gdk_input_window_get_pointer ##### -->
 <para>
-
+Returns information about the current position of the pointer
+within a window, including extended device information.
+Any of the return parameters may be %NULL, in which case,
+they will be ignored.
 </para>
 
-@Returns: 
-
-<!-- ##### SECTION ./tmpl/gdkregion.sgml:Title ##### -->
-Points, Rectangles and Regions
-
+@window: a #GdkWindow.
+@deviceid: a device ID.
+@x: location to store current x postion.
+@y: location to store current y postion.
+@pressure: location to store current pressure.
+@xtilt: location to store current tilt in the x direction.
+@ytilt: location to store current tilt in the y direction.
+@mask: location to store the current modifier state.
 
 <!-- ##### FUNCTION gdk_regions_intersect ##### -->
 <para>
@@ -327,56 +1633,36 @@ Returns the intersection of two regions.
 @source2: a #GdkRegion.
 @Returns: the intersection of @source1 and @source2.
 
-<!-- ##### FUNCTION gdk_keymap_lookup_key ##### -->
-<para>
-
-</para>
-
-@keymap: 
-@key: 
-@Returns: 
-
-<!-- ##### USER_FUNCTION GdkSpanFunc ##### -->
-<para>
-
-</para>
-
-@span: The intersected part of the span.
-@data: Opaque data passed by user.
-
-<!-- ##### STRUCT GdkKeymapClass ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/gdkkeys.sgml:Title ##### -->
-Keyboard Handling
-
-
-<!-- ##### STRUCT GdkKeymapKey ##### -->
+<!-- ##### FUNCTION gdk_regions_subtract ##### -->
 <para>
-
+Subtracts one region from another.
+The result is a region containing all the pixels which are in @source1, but
+which are not in @source2.
 </para>
 
-@keycode: 
-@group: 
-@level: 
+@source1: a #GdkRegion.
+@source2: a #GdkRegion to subtract from @source1.
+@Returns: @source1 - @source2.
 
-<!-- ##### FUNCTION gdk_input_set_mode ##### -->
+<!-- ##### FUNCTION gdk_regions_union ##### -->
 <para>
-Enables or disables a device, and determines how the
-device maps onto the screen.
+Returns the union of two regions.
+This is all pixels in either of @source1 or @source2.
 </para>
 
-@deviceid: the device to configure.
-@mode: the new mode.
-@Returns: %TRUE if the device supports the given mode, otherwise 
-          %FALSE and the device's mode is unchanged.
+@source1: a #GdkRegion.
+@source2: a #GdkRegion.
+@Returns: the union of @source1 and @source2.
 
-<!-- ##### SECTION ./tmpl/input_methods.sgml.sgml:Long_Description ##### -->
+<!-- ##### FUNCTION gdk_regions_xor ##### -->
 <para>
-
+Returns the difference between the union and the intersection of two regions.
+This is a region containing the pixels that are in one of the source regions,
+but which are not in both.
 </para>
 
+@source1: a #GdkRegion.
+@source2: a #GdkRegion.
+@Returns: the difference between the union and the intersection of @source1
+and @source2.
 
index f3ef9f1a28fb57081b81bc6b0f2b623898f1b331..1fe14205ca46ae6aedbb89934e9a9c10f0e6b687 100644 (file)
 Images
 
 <!-- ##### SECTION Short_Description ##### -->
-
+an area for bit-mapped graphics stored on the X Windows client.
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-
+The #GdkImage type represents an area for drawing graphics.
+It has now been superceded to a large extent by the much more flexible
+<link linkend="gdk-GdkRGB">GdkRGB</link> functions.
+</para>
+<para>
+To create an empty #GdkImage use gdk_image_new().
+To create a #GdkImage from bitmap data use gdk_image_new_bitmap().
+To create an image from part of a #GdkWindow use gdk_image_get().
+</para>
+<para>
+The image can be manipulated with gdk_image_get_pixel() and
+gdk_image_put_pixel(), or alternatively by changing the actual pixel data.
+Though manipulating the pixel data requires complicated code to cope with
+the different formats that may be used.
+</para>
+<para>
+To draw a #GdkImage in a #GdkWindow or #GdkPixmap use gdk_draw_image().
+</para>
+<para>
+To destroy a #GdkImage use gdk_image_destroy().
 </para>
 
 <!-- ##### SECTION See_Also ##### -->
 <para>
-
+<variablelist>
+
+<varlistentry>
+<term><link linkend="gdk-Bitmaps-and-Pixmaps">Bitmaps and Pixmaps</link></term>
+<listitem><para>
+Graphics which are stored on the X Windows server.
+Since these are stored on the server they can be drawn very quickly, and all
+of the <link linkend="gdk-Drawing-Primitives">Drawing Primitives</link> can be
+used to draw on them. Their main disadvantage is that manipulating individual
+pixels can be very slow.
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><link linkend="gdk-GdkRGB">GdkRGB</link></term>
+<listitem><para>
+Built on top of #GdkImage, this provides much more functionality,
+including the dithering of colors to produce better output on low-color
+displays.
+</para></listitem>
+</varlistentry>
+
+</variablelist>
 </para>
 
 <!-- ##### STRUCT GdkImage ##### -->
 <para>
-
+The #GdkImage struct contains information on the image and the pixel data.
 </para>
 
 @parent_instance: 
-@type: 
-@visual: 
-@byte_order: 
-@width: 
-@height: 
-@depth: 
-@bpp: 
-@bpl: 
-@mem: 
+@type: the type of the image.
+@visual: the visual.
+@byte_order: the byte order.
+@width: the width of the image in pixels.
+@height: the height of the image in pixels.
+@depth: the depth of the image, i.e. the number of bits per pixel.
+@bpp: the number of bytes per pixel.
+@bpl: the number of bytes per line of the image.
+@bits_per_pixel: 
+@mem: the pixel data.
 @windowing_data: 
 
 <!-- ##### FUNCTION gdk_image_new ##### -->
 <para>
-
+Creates a new #GdkImage.
 </para>
 
-@type: 
-@visual: 
-@width: 
-@height: 
-@Returns: 
+@type: the type of the #GdkImage, one of %GDK_IMAGE_NORMAL, %GDK_IMAGE_SHARED
+and %GDK_IMAGE_FASTEST. %GDK_IMAGE_FASTEST is probably the best choice, since
+it will try creating a %GDK_IMAGE_SHARED image first and if that fails it will
+then use %GDK_IMAGE_NORMAL.
+@visual: the #GdkVisual to use for the image.
+@width: the width of the image in pixels.
+@height: the height of the image in pixels.
+@Returns: a new #GdkImage, or NULL if the image could not be created.
 
 
 <!-- ##### ENUM GdkImageType ##### -->
 <para>
-
+Specifies the type of a #GdkImage.
 </para>
 
-@GDK_IMAGE_NORMAL: 
-@GDK_IMAGE_SHARED: 
-@GDK_IMAGE_FASTEST: 
+@GDK_IMAGE_NORMAL: The original X image type, which is quite slow since the
+image has to be transferred from the client to the server to display it.
+@GDK_IMAGE_SHARED: A faster image type, which uses shared memory to transfer
+the image data between client and server. However this will only be available
+if client and server are on the same machine and the shared memory extension
+is supported by the server.
+@GDK_IMAGE_FASTEST: Specifies that %GDK_IMAGE_SHARED should be tried first,
+and if that fails then %GDK_IMAGE_NORMAL will be used.
 
 <!-- ##### FUNCTION gdk_image_new_bitmap ##### -->
 <para>
-
+Creates a new #GdkImage with a depth of 1 from the given data.
 </para>
 
-@visual: 
-@data: 
-@width: 
-@height: 
-@Returns: 
+@visual: the #GdkVisual to use for the image.
+@data: the pixel data.
+@width: the width of the image in pixels.
+@height: the height of the image in pixels.
+@Returns: a new #GdkImage.
 
 
 <!-- ##### FUNCTION gdk_image_get ##### -->
 <para>
-
+Gets part of a #GdkWindow and stores it in a new #GdkImage.
 </para>
 
 @drawable: 
-@x: 
-@y: 
-@width: 
-@height: 
-@Returns: 
+@x: the left edge of the rectangle to copy from @window.
+@y: the top edge of the rectangle to copy from @window.
+@width: the width of the area to copy, in pixels.
+@height: the height of the area to copy, in pixels.
+@Returns: a new #GdkImage with a copy of the given area of @window.
+<!-- # Unused Parameters # -->
+@window: the #GdkWindow to copy from.
 
 
 <!-- ##### FUNCTION gdk_image_ref ##### -->
@@ -96,30 +148,32 @@ Images
 
 <!-- ##### MACRO gdk_image_destroy ##### -->
 <para>
-
+Destroys a #GdkImage, freeing any resources allocated for it.
 </para>
 
+<!-- # Unused Parameters # -->
+@image: a #GdkImage.
 
 
 <!-- ##### FUNCTION gdk_image_put_pixel ##### -->
 <para>
-
+Sets a pixel in a #GdkImage to a given pixel value.
 </para>
 
-@image: 
-@x: 
-@y: 
-@pixel: 
+@image: a #GdkImage.
+@x: the x coordinate of the pixel to set.
+@y: the y coordinate of the pixel to set.
+@pixel: the pixel value to set.
 
 
 <!-- ##### FUNCTION gdk_image_get_pixel ##### -->
 <para>
-
+Gets a pixel value at a specified position in a #GdkImage.
 </para>
 
-@image: 
-@x: 
-@y: 
-@Returns: 
+@image: a #GdkImage.
+@x: the x coordinate of the pixel to get.
+@y: the y coordinate of the pixel to get.
+@Returns: the pixel value at the given position.
 
 
index 387544c82b6881300a12a8e5412778e8614b7c9b..816da7bd2922fbacffea0d3c050685b77f640e5f 100644 (file)
@@ -35,41 +35,45 @@ It can be intersected to regions by using gdk_region_spans_intersect_foreach().
 
 <!-- ##### STRUCT GdkPoint ##### -->
 <para>
-
+Defines the x and y coordinates of a point.
+Note that both are defined as #gint16 values, so the coordinates are limited
+to between -32,768 and 32,767.
 </para>
 
-@x: 
-@y: 
+@x: the x coordinate of the point.
+@y: the y coordinate of the point.
 
 <!-- ##### STRUCT GdkRectangle ##### -->
 <para>
-
+Defines the position and size of a rectangle.
 </para>
 
-@x: 
-@y: 
-@width: 
-@height: 
+@x: the x coordinate of the left edge of the rectangle.
+@y: the y coordinate of the top of the rectangle.
+@width: the width of the rectangle.
+@height: the height of the rectangle.
 
 <!-- ##### FUNCTION gdk_rectangle_intersect ##### -->
 <para>
-
+Calculates the intersection of two rectangles.
 </para>
 
-@src1: 
-@src2: 
-@dest: 
-@Returns: 
+@src1: a #GdkRectangle.
+@src2: a #GdkRectangle.
+@dest: the intersection of @src1 and @src2.
+@Returns: TRUE if the rectangles intersect.
 
 
 <!-- ##### FUNCTION gdk_rectangle_union ##### -->
 <para>
-
+Calculates the union of two rectangles.
+The union of rectangles @src1 and @src2 is the smallest rectangle which
+includes both @src1 and @src2 within it.
 </para>
 
-@src1: 
-@src2: 
-@dest: 
+@src1: a #GdkRectangle.
+@src2: a #GdkRectangle.
+@dest: the union of @src1 and @src2.
 
 
 <!-- ##### STRUCT GdkRegion ##### -->
index 03920b93c947506d65da958a3d161f4ff67cb79b..c60cde24acada129c18484716dcba7b2d618261d 100644 (file)
 GdkRGB
 
 <!-- ##### SECTION Short_Description ##### -->
-
+displays RGB images (as well as grayscale and colormapped) to
+the native window.
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
 
+GdkRgb converts RGB, grayscale, and colormapped images into the native
+window pixel format and displays them. It takes care of colormaps,
+visuals, dithering, and management of the temporary buffers.
+
+</para>
+
+<para>
+You must call gdk_rgb_init() before using any GdkRgb functionality. If
+you fail to do so, expect coredumps. All Gtk+ widgets that use GdkRgb
+(including #GtkPreview) call gdk_rgb_init() in their class_init method.
+Thus, if you use GdkRgb only indirectly, you don't need to worry
+about it.
+</para>
+
+<para>
+GdkRgb tries to use the system default visual and colormap, but
+doesn't always succeed. Thus, you have to be prepared to install the
+visual and colormap generated by GdkRgb. The following code sequence
+(before any widgets are created) should work in most applications:
+</para>
+
+<informalexample>
+<programlisting>
+  gdk_rgb_init ();
+
+  gtk_widget_set_default_colormap (gdk_rgb_get_cmap ());
+  gtk_widget_set_default_visual (gdk_rgb_get_visual ());
+</programlisting>
+</informalexample>
+
+<para>
+You can also push the colormap and visual, but in general it doesn't
+work unless the push wraps the window creation call. If you wrap the
+push around a widget which is embedded in a window without the GdkRgb
+colormap and visual, it probably won't work, and is likely to cause
+colormap flashing, as well.
+</para>
+
+<para>
+On 8-bit systems, the colormaps used by Imlib and GdkRgb may
+conflict. There is no good general solution to this other than phasing
+out the dependence on Imlib.
+</para>
+
+<para>
+You can set the threshold for installing colormaps with
+gdk_rgb_set_min_colors (). The default is 5x5x5 (125). If a colorcube
+of this size or larger can be allocated in the default colormap, then
+that's done. Otherwise, GdkRgb creates its own private colormap.
+Setting it to 0 means that it always tries to use the default
+colormap, and setting it to 216 means that it always creates a private
+one if it cannot allocate the 6x6x6 colormap in the default. If you
+always want a private colormap (to avoid consuming too many colormap
+entries for other apps, say), you can use gdk_rgb_set_install(TRUE).
+Setting the value greater than 216 exercises a bug in older versions
+of GdkRgb. Note, however, that setting it to 0 doesn't let you get
+away with ignoring the colormap and visual - a colormap is always
+created in grayscale and direct color modes, and the visual is changed
+in cases where a "better" visual than the default is available.
 </para>
 
+<example>
+<title>A simple example program using GdkRGB.</title>
+<programlisting>
+#include &lt;gtk/gtk.h&gt;
+
+#define IMAGE_WIDTH    256
+#define IMAGE_HEIGHT   256
+
+guchar rgbbuf[IMAGE_WIDTH * IMAGE_HEIGHT * 3];
+
+gboolean on_darea_expose (GtkWidget *widget,
+                         GdkEventExpose *event,
+                         gpointer user_data);
+
+int
+main (int argc, char *argv[])
+{
+  GtkWidget *window, *darea;
+  gint x, y;
+  guchar *pos;
+
+  gtk_init (&amp;argc, &amp;argv);
+  gdk_rgb_init ();
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  darea = gtk_drawing_area_new ();
+  gtk_drawing_area_size (GTK_DRAWING_AREA (darea), IMAGE_WIDTH, IMAGE_HEIGHT);
+  gtk_container_add (GTK_CONTAINER (window), darea);
+  gtk_signal_connect (GTK_OBJECT (darea), "expose-event",
+                      GTK_SIGNAL_FUNC (on_darea_expose), NULL);
+  gtk_widget_show_all (window);
+
+  /* Set up the RGB buffer. */
+  pos = rgbbuf;
+  for (y = 0; y < IMAGE_HEIGHT; y++)
+    {
+      for (x = 0; x < IMAGE_WIDTH; x++)
+       {
+         *pos++ = x - x % 32;                  /* Red. */
+         *pos++ = (x / 32) * 4 + y - y % 32;   /* Green. */
+         *pos++ = y - y % 32;                  /* Blue. */
+       }
+    }
+
+  gtk_main ();
+  return 0;
+}
+
+
+gboolean
+on_darea_expose (GtkWidget *widget,
+                GdkEventExpose *event,
+                gpointer user_data)
+{
+  gdk_draw_rgb_image (widget->window, widget->style->fg_gc[GTK_STATE_NORMAL],
+                     0, 0, IMAGE_WIDTH, IMAGE_HEIGHT,
+                     GDK_RGB_DITHER_MAX, rgbbuf, IMAGE_WIDTH * 3);
+}
+</programlisting>
+</example>
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
+<variablelist>
+
+<varlistentry>
+<term>#GdkColor</term>
+<listitem><para>The underlying Gdk mechanism for allocating
+colors.</para></listitem>
+</varlistentry>
+
+</variablelist>
 
 </para>
 
 <!-- ##### FUNCTION gdk_rgb_init ##### -->
 <para>
+Initializes GdkRgb statically. It may be called more than once with no
+ill effects. It must, however, be called before any other GdkRgb
+operations are performed.
+</para>
 
+<para>
+The GdkRgb "context" is allocated statically. Thus, GdkRgb may be used
+to drive only one visual in any given application. GdkRgb
+automatically selects a best visual and sets its own colormap, if
+necessary. gdk_rgb_get_visual() and gdk_rgb_get_cmap () retrieve
+the chosen visual and colormap, respectively.
 </para>
 
 
 
 <!-- ##### FUNCTION gdk_draw_rgb_image ##### -->
 <para>
+Draws an RGB image in the drawable. This is the core GdkRgb
+function, and likely the only one you will need to use other than the
+initialization stuff.
+</para>
 
+<para>
+The @rowstride parameter allows for lines to be aligned more flexibly.
+For example, lines may be allocated to begin on 32-bit boundaries,
+even if the width of the rectangle is odd. Rowstride is also useful
+when drawing a subrectangle of a larger image in memory. Finally, to
+replicate the same line a number of times, the trick of setting
+@rowstride to 0 is allowed.
 </para>
 
-@drawable: 
-@gc: 
-@x: 
-@y: 
-@width: 
-@height: 
-@dith: 
-@rgb_buf: 
-@rowstride: 
+<para>
+In general, for 0 &lt;= i &lt; @width and 0 &lt;= j &lt; height,
+the pixel (x + i, y + j) is colored with red value @rgb_buf[@j *
+@rowstride + @i * 3], green value @rgb_buf[@j * @rowstride + @i * 3 +
+1], and blue value @rgb_buf[@j * @rowstride + @i * 3 + 2].
+</para>
+
+@drawable: The #GdkDrawable to draw in (usually a #GdkWindow).
+@gc: The graphics context (all Gdk drawing operations require one; its
+contents are ignored).
+@x: The x coordinate of the top-left corner in the drawable.
+@y: The y coordinate of the top-left corner in the drawable.
+@width: The width of the rectangle to be drawn.
+@height: The height of the rectangle to be drawn.
+@dith: A #GdkRgbDither value, selecting the desired dither mode.
+@rgb_buf: The pixel data, represented as packed 24-bit data.
+@rowstride: The number of bytes from the start of one row in @rgb_buf to the
+start of the next.
 
 
 <!-- ##### FUNCTION gdk_draw_rgb_image_dithalign ##### -->
 <para>
+Draws an RGB image in the drawable, with an adjustment for dither alignment.
+</para>
 
+<para>
+This function is useful when drawing dithered images into a window
+that may be scrolled. Pixel (x, y) will be drawn dithered as if its
+actual location is (x + @xdith, y + @ydith). Thus, if you draw an
+image into a window using zero dither alignment, then scroll up one
+pixel, subsequent draws to the window should have @ydith = 1.
 </para>
 
-@drawable: 
-@gc: 
-@x: 
-@y: 
-@width: 
-@height: 
-@dith: 
-@rgb_buf: 
-@rowstride: 
-@xdith: 
-@ydith: 
+<para>
+Setting the dither alignment correctly allows updating of small parts
+of the screen while avoiding visible "seams" between the different
+dither textures.
+</para>
+
+@drawable: The #GdkDrawable to draw in (usually a #GdkWindow).
+@gc: The graphics context.
+@x: The x coordinate of the top-left corner in the drawable.
+@y: The y coordinate of the top-left corner in the drawable.
+@width: The width of the rectangle to be drawn.
+@height: The height of the rectangle to be drawn.
+@dith: A #GdkRgbDither value, selecting the desired dither mode.
+@rgb_buf: The pixel data, represented as packed 24-bit data.
+@rowstride: The number of bytes from the start of one row in @rgb_buf to the
+start of the next.
+@xdith: An x offset for dither alignment.
+@ydith: A y offset for dither alignment.
 
 
 <!-- ##### FUNCTION gdk_draw_indexed_image ##### -->
 <para>
-
+Draws an indexed image in the drawable, using a #GdkRgbCmap to assign
+actual colors to the color indices.
 </para>
 
-@drawable: 
-@gc: 
-@x: 
-@y: 
-@width: 
-@height: 
-@dith: 
-@buf: 
-@rowstride: 
-@cmap: 
+@drawable: The #GdkDrawable to draw in (usually a #GdkWindow).
+@gc: The graphics context.
+@x: The x coordinate of the top-left corner in the drawable.
+@y: The y coordinate of the top-left corner in the drawable.
+@width: The width of the rectangle to be drawn.
+@height: The height of the rectangle to be drawn.
+@dith: A #GdkRgbDither value, selecting the desired dither mode.
+@buf: The pixel data, represented as 8-bit color indices.
+@rowstride: The number of bytes from the start of one row in @buf to the
+start of the next.
+@cmap: The #GdkRgbCmap used to assign colors to the color indices.
 
 
 <!-- ##### FUNCTION gdk_draw_gray_image ##### -->
 <para>
+Draws a grayscale image in the drawable.
 
 </para>
 
-@drawable: 
-@gc: 
-@x: 
-@y: 
-@width: 
-@height: 
-@dith: 
-@buf: 
-@rowstride: 
+@drawable: The #GdkDrawable to draw in (usually a #GdkWindow).
+@gc: The graphics context.
+@x: The x coordinate of the top-left corner in the drawable.
+@y: The y coordinate of the top-left corner in the drawable.
+@width: The width of the rectangle to be drawn.
+@height: The height of the rectangle to be drawn.
+@dith: A #GdkRgbDither value, selecting the desired dither mode.
+@buf: The pixel data, represented as 8-bit gray values.
+@rowstride: The number of bytes from the start of one row in @buf to the
+start of the next.
 
 
 <!-- ##### FUNCTION gdk_draw_rgb_32_image ##### -->
 <para>
+Draws a padded RGB image in the drawable. The image is stored as one
+pixel per 32-bit word. It is laid out as a red byte, a green byte, a
+blue byte, and a padding byte.
+</para>
 
+<para>
+It's unlikely that this function will give significant performance
+gains in practice. In my experience, the performance gain from having
+pixels aligned to 32-bit boundaries is cancelled out by the increased
+memory bandwidth.
 </para>
 
-@drawable: 
-@gc: 
-@x: 
-@y: 
-@width: 
-@height: 
-@dith: 
-@buf: 
-@rowstride: 
+@drawable: The #GdkDrawable to draw in (usually a #GdkWindow).
+@gc: The graphics context.
+@x: The x coordinate of the top-left corner in the drawable.
+@y: The y coordinate of the top-left corner in the drawable.
+@width: The width of the rectangle to be drawn.
+@height: The height of the rectangle to be drawn.
+@dith: A #GdkRgbDither value, selecting the desired dither mode.
+@buf: The pixel data, represented as padded 32-bit data.
+@rowstride: The number of bytes from the start of one row in @buf to the
+start of the next.
 
 
 <!-- ##### FUNCTION gdk_draw_rgb_32_image_dithalign ##### -->
@@ -125,6 +313,36 @@ GdkRGB
 <!-- ##### ENUM GdkRgbDither ##### -->
 <para>
 
+Selects whether or not GdkRgb applies dithering
+to the image on display. There are three values:
+</para>
+
+<itemizedlist>
+
+<listitem>
+<para>
+%GDK_RGB_DITHER_NONE: Never use dithering.
+</para>
+</listitem>
+
+<listitem>
+<para>
+%GDK_RGB_DITHER_NORMAL: Use dithering in 8 bits per pixel (and below)
+only.
+</para>
+</listitem>
+
+<listitem>
+<para>
+%GDK_RGB_DITHER_MAX: Use dithering in 16 bits per pixel and below.
+</para>
+</listitem>
+
+</itemizedlist>
+
+<para>
+Since GdkRgb currently only handles images with 8 bits per component,
+dithering on 24 bit per pixel displays is a moot point.
 </para>
 
 @GDK_RGB_DITHER_NONE: 
@@ -133,25 +351,29 @@ GdkRGB
 
 <!-- ##### FUNCTION gdk_rgb_cmap_new ##### -->
 <para>
-
+Creates a new #GdkRgbCmap structure. The cmap maps color indexes to
+RGB colors. If @n_colors is less than 256, then images containing
+color values greater than or equal to @n_colors will produce undefined
+results, including possibly segfaults.
 </para>
 
-@colors: 
-@n_colors: 
-@Returns: 
+@colors: The colors, represented as 0xRRGGBB integer values.
+@n_colors: The number of colors in the cmap.
+@Returns: The newly created #GdkRgbCmap
 
 
 <!-- ##### FUNCTION gdk_rgb_cmap_free ##### -->
 <para>
-
+Frees the memory associated with a #GdkRgbCmap created by gdk_rgb_cmap_new().
 </para>
 
-@cmap: 
+@cmap: The #GdkRgbCmap to free.
 
 
 <!-- ##### STRUCT GdkRgbCmap ##### -->
 <para>
-
+A private data structure which maps color indices to actual RGB
+colors. This is used only for gdk_draw_indexed_image().
 </para>
 
 @colors: 
@@ -159,29 +381,33 @@ GdkRGB
 
 <!-- ##### FUNCTION gdk_rgb_gc_set_foreground ##### -->
 <para>
-
+Sets the foreground color in @gc to the specified color (or the
+closest approximation, in the case of limited visuals).
 </para>
 
-@gc: 
-@rgb: 
+@gc: The #GdkGC to modify.
+@rgb: The color, represented as a 0xRRGGBB integer value.
 
 
 <!-- ##### FUNCTION gdk_rgb_gc_set_background ##### -->
 <para>
-
+Sets the background color in @gc to the specified color (or the
+closest approximation, in the case of limited visuals).
 </para>
 
-@gc: 
-@rgb: 
+@gc: The #GdkGC to modify.
+@rgb: The color, represented as a 0xRRGGBB integer value.
 
 
 <!-- ##### FUNCTION gdk_rgb_xpixel_from_rgb ##### -->
 <para>
-
+Finds the X pixel closest in color to the @rgb color specified. This
+value may be used to set the <structfield>pixel</structfield> field of
+a #GdkColor struct.
 </para>
 
-@rgb: 
-@Returns: 
+@rgb: The color, represented as a 0xRRGGBB integer value.
+@Returns: The X pixel value.
 
 
 <!-- ##### FUNCTION gdk_rgb_find_color ##### -->
@@ -195,26 +421,38 @@ GdkRGB
 
 <!-- ##### FUNCTION gdk_rgb_set_install ##### -->
 <para>
+If @install is TRUE, directs GdkRgb to always install a new "private"
+colormap rather than trying to find a best fit with the colors already
+allocated. Ordinarily, GdkRgb will install a colormap only if a
+sufficient cube cannot be allocated.
+</para>
 
+<para>
+A private colormap has more colors, leading to better quality display,
+but also leads to the dreaded "colormap flashing" effect.
 </para>
 
-@install: 
+@install: TRUE to set install mode.
 
 
 <!-- ##### FUNCTION gdk_rgb_set_min_colors ##### -->
 <para>
-
+Sets the minimum number of colors for the color cube. Generally,
+GdkRgb tries to allocate the largest color cube it can. If it can't
+allocate a color cube at least as large as @min_colors, it installs a
+private colormap.
 </para>
 
-@min_colors: 
+@min_colors: The minimum number of colors accepted.
 
 
 <!-- ##### FUNCTION gdk_rgb_get_visual ##### -->
 <para>
-
+Gets the visual chosen by GdkRgb. This visual and the corresponding
+colormap should be used when creating windows that will be drawn in by GdkRgb.
 </para>
 
-@Returns: 
+@Returns: The #GdkVisual chosen by GdkRgb.
 
 
 <!-- ##### FUNCTION gdk_rgb_get_colormap ##### -->
@@ -227,24 +465,29 @@ GdkRGB
 
 <!-- ##### MACRO gdk_rgb_get_cmap ##### -->
 <para>
-
+Gets the colormap set by GdkRgb. This colormap and the corresponding
+visual should be used when creating windows that will be drawn in by GdkRgb.
 </para>
 
+@Returns: The #GdkColormap set by GdkRgb.
 
 
 <!-- ##### FUNCTION gdk_rgb_ditherable ##### -->
 <para>
-
+Determine whether the visual is ditherable. This function may be
+useful for presenting a user interface choice to the user about which
+dither mode is desired; if the display is not ditherable, it may make
+sense to gray out or hide the corresponding UI widget.
 </para>
 
-@Returns: 
+@Returns: TRUE if the visual is ditherable.
 
 
 <!-- ##### FUNCTION gdk_rgb_set_verbose ##### -->
 <para>
-
+Sets the "verbose" flag. This is generally only useful for debugging.
 </para>
 
-@verbose: 
+@verbose: TRUE if verbose messages are desired.
 
 
index cc811058b6dff7ccd8435d59115c98a3f8c11ba2..1e6c7b0c26d0c4c795907592d6a474ca1e3aab93 100644 (file)
@@ -871,6 +871,16 @@ Windows
 @decorations: 
 
 
+<!-- ##### FUNCTION gdk_window_get_decorations ##### -->
+<para>
+
+</para>
+
+@window: The window to get the decorations from
+@decorations: The window decorations will be written here
+@Returns: TRUE if the window has decorations set, FALSE otherwise.
+
+
 <!-- ##### ENUM GdkWMDecoration ##### -->
 <para>
 
index d20fe80f243756e371eced0d2fb7721419653b27..8e73da65a2b29ad0d40f0197f564f176b5f24008 100644 (file)
@@ -6,12 +6,22 @@ DOC_MODULE=gtk
 # The top-level SGML file.
 DOC_MAIN_SGML_FILE=gtk-docs.sgml
 
-# The directory containing the source code
-DOC_SOURCE_DIR=$(top_srcdir)/gtk
+# The directory containing the source code. Relative to $(srcdir)
+DOC_SOURCE_DIR=../../../gtk
+
+# Extra options to supply to gtkdoc-scan
+SCAN_OPTIONS=--deprecated-guards="GTK_ENABLE_BROKEN|GTK_DISABLE_DEPRECATED" 
+
+# Extra options to supply to gtkdoc-mkdb
+MKDB_OPTIONS=
 
 # Extra options to supply to gtkdoc-fixref
 FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
 
+# Used for dependencies
+HFILE_GLOB=$(top_srcdir)/gtk/*.h
+CFILE_GLOB=$(top_srcdir)/gtk/*.c
+
 # Header files to ignore when scanning
 IGNORE_HFILES=                 \
        fnmatch.h               \
@@ -37,6 +47,22 @@ IGNORE_HFILES=                       \
        gtktexttypes.h          \
        gtktypebuiltins.h
 
+# Images to copy into HTML directory
+HTML_IMAGES =
+
+# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE)
+content_files =                \
+       compiling.sgml          \
+       framebuffer.sgml        \
+       objects_grouped.sgml    \
+       text_widget.sgml        \
+       tree_widget.sgml
+
+# Other files to distribute
+extra_files =
+
+# CFLAGS and LDFLAGS for compiling scan program. Only needed
+# if $(DOC_MODULE).types is non-empty.
 GTKDOC_CFLAGS = @STRIP_BEGIN@                          \
        @CFLAGS@                                        \
        -I$(top_srcdir)                                 \
@@ -66,10 +92,6 @@ GTKDOC_LIBS = @STRIP_BEGIN@                          \
 GTKDOC_CC=$(LIBTOOL) --mode=compile $(CC)
 GTKDOC_LD=$(LIBTOOL) --mode=link $(CC)
 
-content_files =                \
-       objects_grouped.sgml    \
-       text_widget.sgml        \
-       tree_widget.sgml
 
 ####################################
 # Everything below here is generic #
@@ -78,48 +100,76 @@ content_files =            \
 TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
 
 EXTRA_DIST =                           \
-       $(DOC_MODULE).types             \
-       $(DOC_MAIN_SGML_FILE)           \
        $(content_files)                \
+       $(extra_files)                  \
+       $(HTML_IMAGES)                  \
+       $(DOC_MAIN_SGML_FILE)           \
+       $(DOC_MODULE).types             \
        $(DOC_MODULE)-sections.txt      \
        $(DOC_MODULE)-overrides.txt
 
+DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp
+
 if ENABLE_GTK_DOC
-all-local: html/index.html
+all-local: html-build.stamp
+
+SCANOBJ_FILES =                \
+       $(DOC_MODULE).args      \
+       $(DOC_MODULE).hierarchy \
+       $(DOC_MODULE).signal
+
+scan-build.stamp: $(HFILE_GLOB)
+       @echo '*** Scanning header files ***'
+       cd $(srcdir) && ( \
+       if grep -l '^.+$$' $(DOC_MODULE).types > /dev/null ; then \
+           CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scangobj --module=$(DOC_MODULE) ; \
+       else \
+           for i in $(SCANOBJ_FILES) ; do \
+               test -f $$i || touch $$i ; \
+           done \
+       fi )
+       cd $(srcdir) && \
+         gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES)
+       touch scan-build.stamp
 
-$(DOC_MODULE)-decl.txt: 
-       $(MAKE) scan
+check_scan:
+       $(MAKE) scan-build.stamp
 
-$(tmpl_sources): $(DOC_MODULE)-decl.txt $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
-       $(MAKE) templates
+$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES): check_scan
 
-sgml/$(DOC_MODULE)-doc.bottom: $(tmpl_sources) $(DOC_MODULE)-decl.txt
-       $(MAKE) sgml
+tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
+       @echo '*** Rebuilding template files ***'
+       cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE)
+       touch tmpl-build.stamp
 
-html/index.html: sgml/$(DOC_MODULE)-doc.bottom $(DOC_MAIN_SGML_FILE) $(content_files)
-       $(MAKE) html
-endif
+check_templates: 
+       $(MAKE) tmpl-build.stamp
 
-scan:
-       (cd $(srcdir) \
-       && CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scangobj --module=$(DOC_MODULE) \
-       && gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --deprecated-guards="GTK_ENABLE_BROKEN|GTK_DISABLE_DEPRECATED" --ignore-headers="$(IGNORE_HFILES)" $(EXTRA_HFILES))
+tmpl.stamp: check_templates
 
-templates: 
-       cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE)
+sgml-build.stamp: tmpl.stamp $(CFILE_GLOB)
+       @echo '*** Building SGML ***'
+       cd $(srcdir) && \
+       gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) $(MKDB_OPTIONS)
+       touch sgml-build.stamp
+
+check_sgml:
+       $(MAKE) sgml-build.stamp
 
-sgml:
-       cd $(srcdir) \
-       && gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR)
+sgml.stamp: check_sgml
 
-html:
+html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE)
+       @echo '*** Building HTML ***'
        test -d $(srcdir)/html || mkdir $(srcdir)/html
-       -cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
+       cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
+       test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html )
        @echo '-- Fixing Crossreferences' 
        cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
+       touch html-build.stamp
+endif
 
 clean-local:
-       rm -f *~ *.bak *.signals *-unused.txt
+       rm -f *~ *.bak $(SCANOBJ_FILES) *-unused.txt $(DOC_STAMPS) $(srcdir)/sgml.stamp 
 
 maintainer-clean-local: clean
        cd $(srcdir) && rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
@@ -145,17 +195,21 @@ if ENABLE_GTK_DOC
 dist-check-gtkdoc:
 else
 dist-check-gtkdoc:
-       @echo "*** gtk-doc must be installed and enabled in order to make dist
+       @echo "*** gtk-doc must be installed and enabled in order to make dist"
        @false
 endif
 
-dist-hook: dist-check-gtkdoc
-       mkdir $(distdir)/html
-       mkdir $(distdir)/sgml
+dist-hook: dist-check-gtkdoc dist-hook-local
        mkdir $(distdir)/tmpl
-       -cp $(srcdir)/html/*.html $(srcdir)/html/*.css $(srcdir)/html/index.sgml $(distdir)/html
+       mkdir $(distdir)/sgml
+       mkdir $(distdir)/html
        -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
        -cp $(srcdir)/sgml/*.sgml $(distdir)/sgml
        -cp $(srcdir)/sgml/*.bottom $(srcdir)/sgml/*.top $(distdir)/sgml
+       -cp $(srcdir)/html/index.sgml $(distdir)/html
+       -cp $(srcdir)/html/*.html $(srcdir)/html/*.css $(distdir)/html
+       for i in $(HTML_IMAGES) ; do          \
+         cp $(srcdir)/$$i $(distdir)/html ;  \
+        done
 
-.PHONY : html sgml templates scan
+.PHONY : check_sgml check_templates check_scan dist-hook-local
index 7f37ff2cab727d0d7eb7141f876564cd7d5698e9..88a292bb43770c3f01da8b7a076e3816ddd6f8c2 100644 (file)
-<!-- ##### SECTION ./tmpl/gtkdebug.sgml:Title ##### -->
-Debugging
-
-
-<!-- ##### SIGNAL GtkEditable::cut-clipboard ##### -->
-<para>
-An action signal. Causes the characters in the current
-selection to be copied to the clipboard and then deleted from
-the widget.
-</para>
-
-@editable: the object which received the signal.
-
-<!-- ##### SECTION ./tmpl/gtkdebug.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### MACRO gtk_marshal_NONE__BOXED ##### -->
+<!-- ##### SECTION ./tmpl/gtkaccelgroup.sgml:Long_Description ##### -->
 <para>
 
 </para>
 
 
-<!-- ##### FUNCTION gtk_model_simple_node_inserted ##### -->
+<!-- ##### SECTION ./tmpl/gtkaccelgroup.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@simple: 
-@path: 
-@iter: 
 
-<!-- ##### FUNCTION gtk_widget_newv ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gtkaccelgroup.sgml:Short_Description ##### -->
 
-</para>
 
-@type: 
-@nargs: 
-@args: 
-@Returns: 
 
-<!-- ##### MACRO GTK_CLIST_CHILD_HAS_FOCUS ##### -->
-<para>
-A macro to check whether a child widget of the CList
-has the focus.
-</para>
+<!-- ##### SECTION ./tmpl/gtkaccelgroup.sgml:Title ##### -->
+Keyboard Accelerators
 
-@clist: The #GtkCList widget to check.
 
-<!-- ##### SECTION ./tmpl/gtkmarshal.sgml:Long_Description ##### -->
-<refsect2>
-<title>What are Signal Marshallers?</title>
+<!-- ##### SECTION ./tmpl/gtkarg.sgml:Long_Description ##### -->
 <para>
-Marshals are functions which all have the same prototype:
-they take a #GtkObject, a #GtkSignalFunc, a #gpointer,
-and an array of argument values.
-The functions are names gtk_marshall_RETURNTYPE__PARAMTYPE1_PARAMTYPE2....
+All the functions in here are marked a Non-public.
+We describe it anyway because it is occasionally useful
+to understand how the work is done.
 </para>
 <para>
-They then call a native function:  the GtkObject is the first
-parameter passed in.  The arguments are passed in the native
-calling convention:  chars, shorts, ints, longs may be packed
-on the stack, or tucked in registers:  it doesn't matter
-because the same calling convention will be generated
-inside the gtkmarshal code as is expected where you define
-your handlers.
-</para>
+Arguments are a way of describing a named parameter to a function.
+They have two important roles within gtk+:
+<itemizedlist>
+<listitem>
 <para>
-So the function named:
-<programlisting>
-gtk_marshal_BOOL__POINTER_INT_INT_UINT(GtkObject*, GtkSignalFunc, gpointer, GtkArg*);
-</programlisting>
-will call the #GtkSignalFunc assuming it was a function with signature:
-<programlisting>
-gboolean sigfunc(gpointer,gint,gint,guint);
-</programlisting>
+they describe <wordasword>object properties</wordasword>.
+This means that they present an interface to get and set a named-type
+for any type of object in a consistent way.
+(All the relevant functions to do this start with gtk_object_set
+or gtk_object_get).
 </para>
-</refsect2>
-<refsect2>
-<title>Writing Custom Marshals</title>
+</listitem>
+<listitem>
 <para>
-Marshals are primarily used as arguments to gtk_signal_new().
-Sometimes, you may find that a marshaller you need isn't available
-in the standard list.  Then you have to write your own.
+they describe <wordasword>signal arguments</wordasword>.
+This is a lot less often needed but still useful.
+Usually if you are just emitting or creating a particular signal
+it is more convenient to just use gtk_signal_emit() or gtk_signal_new().
+However if you are writing a function to emit or create an arbitrary
+signal, you must use gtk_signal_emitv() or gtk_signal_newv().
+</para>
+</listitem>
+</itemizedlist>
 </para>
-<para>
-If you wish to define a signal with a new type of argument list.
-Suppose you want 2 pointers and 2 integers.
-You would write:
-<programlisting>
-typedef int (*GtkSignal_INT__POINTER_POINTER_INT_INT)(
-                       gpointer, gpointer, gint, gint
-);
 
-void marshal_INT__POINTER_POINTER_INT_INT(GtkObject*    object,
-                                          GtkSignalFunc func,
-                                          gpointer      func_data,
-                                           GtkArg*       args)
-{
-       GtkSignal_NONE__POINTER_POINTER_INT_INT rfunc;
-       gint* return_val;
-       return_val = GTK_RETLOC_INT(args[4]);
-       rfunc = (GtkSignal_INT__POINTER_POINTER_INT_INT)func;
-       *return_val = (*rfunc)(object,
-                               GTK_VALUE_POINTER(args[0]),
-                               GTK_VALUE_POINTER(args[1]),
-                               GTK_VALUE_INT(args[2]),
-                               GTK_VALUE_INT(args[3]),
-                               func_data);
-}
-</programlisting>
+
+<!-- ##### SECTION ./tmpl/gtkarg.sgml:See_Also ##### -->
+<para>
+#GtkObject.
 </para>
-</refsect2>
 
 
-<!-- ##### SECTION ./tmpl/gtkmenufactory.sgml:Short_Description ##### -->
+<!-- ##### SECTION ./tmpl/gtkarg.sgml:Short_Description ##### -->
+Utility function to manipulate lists of named, typed arguments.
 
 
+<!-- ##### SECTION ./tmpl/gtkarg.sgml:Title ##### -->
+Implementation of Object Properties
 
-<!-- ##### FUNCTION gtk_object_class_add_signals ##### -->
+
+<!-- ##### SECTION ./tmpl/gtkbindings.sgml:Long_Description ##### -->
 <para>
-Add an array of signals to a #GtkObjectClass.
-Usually this is called when registering a new type of object.
+
 </para>
 
-@klass: the object class to append signals to.
-@signals: the signals to append.
-@nsignals: the number of signals being appended.
 
-<!-- ##### MACRO gtk_marshal_NONE__UINT_STRING ##### -->
+<!-- ##### SECTION ./tmpl/gtkbindings.sgml:See_Also ##### -->
 <para>
 
 </para>
 
 
-<!-- ##### MACRO GTK_PRIVATE_UNSET_FLAG ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gtkbindings.sgml:Short_Description ##### -->
 
-</para>
 
-@wid: 
-@flag: 
 
-<!-- ##### MACRO GTK_WIDGET_REDRAW_PENDING ##### -->
+<!-- ##### SECTION ./tmpl/gtkbindings.sgml:Title ##### -->
+Bindings
+
+
+<!-- ##### SECTION ./tmpl/gtkcellrenderer.sgml:Long_Description ##### -->
 <para>
 
 </para>
 
-@obj: 
 
-<!-- ##### FUNCTION gtk_icon_factory_get_type ##### -->
+<!-- ##### SECTION ./tmpl/gtkcellrenderer.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@Returns: 
 
-<!-- ##### ARG GtkTextTag:offset-set ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gtkcellrenderer.sgml:Short_Description ##### -->
 
-</para>
 
 
-<!-- ##### FUNCTION gtk_theme_engine_create_rc_style ##### -->
+<!-- ##### SECTION ./tmpl/gtkcellrenderer.sgml:Title ##### -->
+GtkCellRenderer
+
+
+<!-- ##### SECTION ./tmpl/gtkcellrendererpixbuf.sgml:Long_Description ##### -->
 <para>
 
 </para>
 
-@engine: 
-@Returns: 
 
-<!-- ##### FUNCTION gtk_tree_selection_set_type ##### -->
+<!-- ##### SECTION ./tmpl/gtkcellrendererpixbuf.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@selection: 
-@type: 
 
-<!-- ##### MACRO gtk_marshal_NONE__ENUM_FLOAT ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gtkcellrendererpixbuf.sgml:Short_Description ##### -->
 
-</para>
 
 
-<!-- ##### FUNCTION gtk_tree_store_new_with_values ##### -->
+<!-- ##### SECTION ./tmpl/gtkcellrendererpixbuf.sgml:Title ##### -->
+GtkCellRendererPixbuf
+
+
+<!-- ##### SECTION ./tmpl/gtkcellrenderertext.sgml:Long_Description ##### -->
 <para>
 
 </para>
 
-@n_columns: 
-@Varargs: 
-@Returns: 
 
-<!-- ##### SIGNAL GtkTextView::insert ##### -->
+<!-- ##### SECTION ./tmpl/gtkcellrenderertext.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@textview: the object which received the signal.
-@arg1: 
 
-<!-- ##### MACRO gtk_widget_set_default_visual ##### -->
+<!-- ##### SECTION ./tmpl/gtkcellrenderertext.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/gtkcellrenderertext.sgml:Title ##### -->
+GtkCellRendererText
+
+
+<!-- ##### SECTION ./tmpl/gtkcellrenderertextpixbuf.sgml:Long_Description ##### -->
 <para>
 
 </para>
 
-@v: 
-@visual: 
 
-<!-- ##### FUNCTION gtk_window_set_focus ##### -->
+<!-- ##### SECTION ./tmpl/gtkcellrenderertextpixbuf.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@window: 
-@focus: 
 
-<!-- ##### SECTION ./tmpl/gtkprivate.sgml:See_Also ##### -->
+<!-- ##### SECTION ./tmpl/gtkcellrenderertextpixbuf.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/gtkcellrenderertextpixbuf.sgml:Title ##### -->
+GtkCellRendererTextPixbuf
+
+
+<!-- ##### SECTION ./tmpl/gtkcellrenderertoggle.sgml:Long_Description ##### -->
 <para>
 
 </para>
 
 
-<!-- ##### FUNCTION gtk_widget_get ##### -->
+<!-- ##### SECTION ./tmpl/gtkcellrenderertoggle.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@widget: 
-@arg: 
 
-<!-- ##### MACRO gtk_marshal_NONE__POINTER_UINT_ENUM ##### -->
+<!-- ##### SECTION ./tmpl/gtkcellrenderertoggle.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/gtkcellrenderertoggle.sgml:Title ##### -->
+GtkCellRendererToggle
+
+
+<!-- ##### SECTION ./tmpl/gtkclipboard.sgml:Long_Description ##### -->
+  <para>
+    The #GtkClipboard object represents a clipboard of data shared
+    between different processes or between different widgets in
+    the same process. Each clipboard is identified by a name encoded as a
+    #GdkAtom. (Conversion to and from strings can be done with
+    gdk_atom_intern() and gdk_atom_name().) The default clipboard
+    corresponds to the CLIPBOARD atom; another commonly used clipboard
+    is the PRIMARY clipboard, which, in X, traditionally contains
+    the currently selected text. 
+  </para>
+  <para>
+    To support having a number of different formats on the clipboard
+    at the same time, the clipboard mechanism allows providing
+    callbacks instead of the actual data.  When you set the contents
+    of the clipboard, you can either supply the data directly (via
+    functions like gtk_clipboard_set_text()), or you can supply a
+    callback to be called at a later time when the data is needed (via
+    gtk_clipboard_set_with_data() or gtk_clipboard_set_with_owner().)
+    Providing a callback also avoids having to make copies of the data
+    when it is not needed.
+  </para>
+  <para>
+    gtk_clipboard_set_with_data() and gtk_clipboard_set_with_owner()
+    are quite similar; the choice between the two depends mostly on
+    which is more convenient in a particular situation.
+    The former is most useful when you want to have a blob of data
+    with callbacks to convert it into the various data types that you
+    advertise. When the @clear_func you provided is called, you
+    simply free the data blob. The latter is more useful when the
+    contents of clipboard reflect the internal state of a @GObject
+    (As an example, for the PRIMARY clipboard, when an entry widget
+    provides the clipboard's contents the contents are simply the
+    text within the selected region.) If the contents change, the
+    entry widget can call gtk_clipboard_set_with_owner() to update
+    the timestamp for clipboard ownership, without having to worry
+    about @clear_func being called.
+  </para>
+  <para>
+    Requesting the data from the clipboard is essentially
+    asynchronous. If the contents of the clipboard are provided within
+    the same process, then a direct function call will be made to
+    retrieve the data, but if they are provided by another process,
+    then the data needs to be retrieved from the other process, which
+    may take some time. To avoid blocking the user interface, the call
+    to request the selection, gtk_clipboard_request_contents() takes a
+    callback that will be called when the contents are received (or
+    when the request fails.) If you don't want to deal with providing
+    a separate callback, you can also use gtk_clipboard_wait_for_contents().
+    What this does is run the Glib main loop recursively waiting for
+    the contents. This can simplify the code flow, but you still have
+    to be aware that other callbacks in your program can be called
+    while this recursive mainloop is running.
+  </para>
+  <para>
+    Along with the functions to get the clipboard contents as an
+    arbitrary data chunk, there are also functions to retrieve
+    it as text, gtk_clipboard_request_text() and
+    gtk_clipboard_wait_for_text(). These functions take care of
+    determining which formats are advertised by the clipboard
+    provider, asking for the clipboard in the best available format
+    and converting the results into the UTF-8 encoding. (The standard
+    form for representing strings in GTK+.)
+  </para>
+
+
+<!-- ##### SECTION ./tmpl/gtkclipboard.sgml:See_Also ##### -->
 <para>
+<variablelist>
+
+<varlistentry>
+<term>#GtkSelection</term>
+<listitem><para>@GtkClipboard provides a high-level wrapper around the
+           lower level routines that deal with X selections. It is
+           also possibly to directly manipulate the X selections,
+           though it is seldom necessary to do so.</para></listitem>
+</varlistentry>
 
+</variablelist>
 </para>
 
 
-<!-- ##### ARG GtkEditable:editable ##### -->
+<!-- ##### SECTION ./tmpl/gtkclipboard.sgml:Short_Description ##### -->
+Storing data on Clipboards.
+
+
+<!-- ##### SECTION ./tmpl/gtkclipboard.sgml:Title ##### -->
+Clipboards
+
+
+<!-- ##### SECTION ./tmpl/gtkdebug.sgml:Long_Description ##### -->
 <para>
-A boolean indicating whether the widget is editable by
-the user.
+
 </para>
 
 
-<!-- ##### SECTION ./tmpl/gtkmenufactory.sgml:See_Also ##### -->
+<!-- ##### SECTION ./tmpl/gtkdebug.sgml:See_Also ##### -->
 <para>
 
 </para>
 
 
-<!-- ##### FUNCTION gtk_font_selection_set_filter ##### -->
+<!-- ##### SECTION ./tmpl/gtkdebug.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/gtkdebug.sgml:Title ##### -->
+Debugging
+
+
+<!-- ##### SECTION ./tmpl/gtkdnd.sgml:Long_Description ##### -->
 <para>
-Sets one of the two font filters, to limit the fonts shown.
+GTK+ has a rich set of functions for doing inter-process
+communication via the drag-and-drop metaphore. GTK+
+can do drag and drop (DND) via multiple protocols.
+The currently supported protocols are the Xdnd and
+Motif protocols.
+
+As well as the functions listed here, applications
+may need to use some facilities provided for
+<link linkend="gtk-Selections">Selections</link>.
+Also, the Drag and Drop API makes use of signals
+in the #GtkWidget class.
 </para>
 
-@fontsel: a #GtkFontSelection.
-@filter_type: which of the two font filters to set, either
-#GTK_FONT_FILTER_BASE or #GTK_FONT_FILTER_USER. The user filter
-can be changed by the user, but the base filter is permanent.
-@font_type: the types of font to be shown. This is a bitwise combination of
-#GTK_FONT_BITMAP, #GTK_FONT_SCALABLE and #GTK_FONT_SCALABLE_BITMAP,
-or #GTK_FONT_ALL to show all three font types.
-@foundries: a NULL-terminated array of strings containing foundry names which
-will be shown, or NULL to show all foundries.
-@weights: a NULL-terminated array of strings containing weight names which
-will be shown, or NULL to show all weights.
-@slants: a NULL-terminated array of strings containing slant names which
-will be shown, or NULL to show all slants.
-@setwidths: a NULL-terminated array of strings containing setwidth names which
-will be shown, or NULL to show all setwidths.
-@spacings: a NULL-terminated array of strings containing spacings which
-will be shown, or NULL to show all spacings.
-@charsets: a NULL-terminated array of strings containing charset names which
-will be shown, or NULL to show all charsets.
 
-<!-- ##### FUNCTION gtk_container_unregister_toplevel ##### -->
+<!-- ##### SECTION ./tmpl/gtkdnd.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@container: 
 
-<!-- ##### SECTION ./tmpl/gtkmarshal.sgml:Title ##### -->
-Signal Marshallers
+<!-- ##### SECTION ./tmpl/gtkdnd.sgml:Short_Description ##### -->
+Functions for controlling drag and drop handling.
+
+
+<!-- ##### SECTION ./tmpl/gtkdnd.sgml:Title ##### -->
+Drag and Drop
 
 
 <!-- ##### SECTION ./tmpl/gtkenums.sgml.sgml:Long_Description ##### -->
@@ -292,1094 +331,1595 @@ Signal Marshallers
 </para>
 
 
-<!-- ##### STRUCT GtkTypeQuery ##### -->
+<!-- ##### SECTION ./tmpl/gtkenums.sgml.sgml:See_Also ##### -->
 <para>
-A structure used to return values from @gtk_type_query.
+
 </para>
 
-@type: 
-@type_name: 
-@object_size: 
-@class_size: 
 
-<!-- ##### MACRO gtk_widget_pop_visual ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gtkenums.sgml.sgml:Short_Description ##### -->
 
-</para>
 
-@v: 
 
-<!-- ##### FUNCTION gtk_text_buffer_get_clipboard_contents ##### -->
+<!-- ##### SECTION ./tmpl/gtkenums.sgml.sgml:Title ##### -->
+gtkenums.sgml
+
+
+<!-- ##### SECTION ./tmpl/gtkenums.sgml:Long_Description ##### -->
 <para>
 
 </para>
 
-@buffer: 
-@Returns: 
 
-<!-- ##### FUNCTION gtk_marshal_NONE__C_CALLBACK ##### -->
+<!-- ##### SECTION ./tmpl/gtkenums.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
 
-<!-- ##### ARG GtkTextTag:justify ##### -->
-<para>
-A #GtkJustification for the text. This is only used when the tag is
-applied to the first character in a paragraph.
-</para>
+<!-- ##### SECTION ./tmpl/gtkenums.sgml:Short_Description ##### -->
+Public enumerated types used throughout GTK+.
 
 
-<!-- ##### USER_FUNCTION GtkSignalMarshal ##### -->
+<!-- ##### SECTION ./tmpl/gtkenums.sgml:Title ##### -->
+Standard Enumerations
+
+
+<!-- ##### SECTION ./tmpl/gtkfeatures.sgml:Long_Description ##### -->
 <para>
-This is currently a hack left in for a scheme wrapper library.
-It may be removed.
+This section describes the variables and functions available to test the
+version of the GTK+ library in use.
+FIXME: probably merge with other general stuff.
 </para>
+
+
+<!-- ##### SECTION ./tmpl/gtkfeatures.sgml:See_Also ##### -->
 <para>
-Don't use it.
+
 </para>
 
-@object: The object which emits the signal.
-@data: The user data associated with the hook.
-@nparams: The number of parameters to the function.
-@args: The actual values of the arguments.
-@arg_types: The types of the arguments.
-@return_type: The type of the return value from the function
-or #GTK_TYPE_NONE for no return value.
 
-<!-- ##### FUNCTION gtk_signal_add_emission_hook_full ##### -->
-<para>
-Add an emission hook for a type of signal, for any object.
-(with control of what happens when the hook is
-destroyed).
-</para>
+<!-- ##### SECTION ./tmpl/gtkfeatures.sgml:Short_Description ##### -->
+variables and functions to check the GTK+ version.
 
-@signal_id: the type of signal add the hook for.
-@hook_func: the function to invoke to handle the hook.
-@data: the user data passed in to hook_func.
-@destroy: a function to invoke when the hook is destroyed,
-to clean up any allocation done just for this
-signal handler.
-@Returns: the id (that you may pass as a parameter
-to gtk_signal_remove_emission_hook()).
 
-<!-- ##### FUNCTION gtk_text_buffer_paste_primary_selection ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gtkfeatures.sgml:Title ##### -->
+Version Information
+
 
+<!-- ##### SECTION ./tmpl/gtkgc.sgml:Long_Description ##### -->
+<para>
+These functions provide access to a shared pool of #GdkGC objects.
+When a new #GdkGC is needed, gtk_gc_get() is called with the required depth,
+colormap and #GdkGCValues. If a #GdkGC with the required properties already
+exists then that is returned. If not, a new #GdkGC is created.
+When the #GdkGC is no longer needed, gtk_gc_release() is called.
 </para>
 
-@buffer: 
-@override_location: 
-@time: 
-@interactive: 
-@default_editable: 
 
-<!-- ##### FUNCTION gtk_marshal_BOOL__POINTER_INT_INT ##### -->
+<!-- ##### SECTION ./tmpl/gtkgc.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
 
-<!-- ##### FUNCTION gtk_model_simple_node_changed ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gtkgc.sgml:Short_Description ##### -->
+provides access to a shared pool of #GdkGC objects.
 
-</para>
 
-@simple: 
-@path: 
-@iter: 
+<!-- ##### SECTION ./tmpl/gtkgc.sgml:Title ##### -->
+Graphics Contexts
 
-<!-- ##### FUNCTION gtk_tree_view_column_set_size ##### -->
+
+<!-- ##### SECTION ./tmpl/gtkiconfactory.sgml:Long_Description ##### -->
 <para>
+ An icon factory manages a collection of #GtkIconSet; a #GtkIconSet manages a
+ set of variants of a particular icon (i.e. a #GtkIconSet contains variants for
+ different sizes and widget states). Icons in an icon factory are named by a
+ stock ID, which is a simple string identifying the icon. Each #GtkStyle has a
+ list of #GtkIconFactory derived from the current theme; those icon factories
+ are consulted first when searching for an icon. If the theme doesn't set a
+ particular icon, GTK+ looks for the icon in a list of default icon factories,
+ maintained by gtk_icon_factory_add_default() and
+ gtk_icon_factory_remove_default(). Applications with icons should add a default
+ icon factory with their icons, which will allow themes to override the icons
+ for the application.
+</para>
 
+<para>
+To display an icon, always use gtk_style_lookup_icon_set() on the widget that
+will display the icon, or the convenience function
+gtk_widget_render_icon(). These functions take the theme into account when
+looking up the icon to use for a given stock ID.
 </para>
 
-@tree_column: 
-@size: 
-@width: 
 
-<!-- ##### SIGNAL GtkTextView::copy-text ##### -->
+<!-- ##### SECTION ./tmpl/gtkiconfactory.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@textview: the object which received the signal.
 
-<!-- ##### FUNCTION gtk_text_view_get_iter_at_pixel ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gtkiconfactory.sgml:Short_Description ##### -->
 
-</para>
+Manipulating stock icons
 
-@text_view: 
-@iter: 
-@x: 
-@y: 
 
-<!-- ##### FUNCTION gtk_object_getv ##### -->
-<para>
-Gets an array of argument values from an object.
-</para>
+<!-- ##### SECTION ./tmpl/gtkiconfactory.sgml:Title ##### -->
+Themeable Stock Images
 
-@object: the object to get arguments from.
-@n_args: the number of arguments to query.
-@args: the arguments to fill in.
 
-<!-- ##### STRUCT GtkThemeEngine ##### -->
+<!-- ##### SECTION ./tmpl/gtkimcontextsimple.sgml:Long_Description ##### -->
 <para>
 
 </para>
 
 
-<!-- ##### FUNCTION gtk_text_buffer_get_tags ##### -->
+<!-- ##### SECTION ./tmpl/gtkimcontextsimple.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@buffer: 
-@iter: 
-@Returns: 
 
-<!-- ##### SECTION ./tmpl/gtkenums.sgml.sgml:Short_Description ##### -->
+<!-- ##### SECTION ./tmpl/gtkimcontextsimple.sgml:Short_Description ##### -->
 
 
 
-<!-- ##### FUNCTION gtk_identifier_get_type ##### -->
-<para>
-Get the type of GtkIdentifier.
-</para>
+<!-- ##### SECTION ./tmpl/gtkimcontextsimple.sgml:Title ##### -->
+GtkIMContextSimple
 
-@Returns: GtkType -- the enumerated type of something.
 
-<!-- ##### FUNCTION gtk_theme_engine_get ##### -->
+<!-- ##### SECTION ./tmpl/gtkliststore.sgml:Long_Description ##### -->
 <para>
 
 </para>
 
-@name: 
-@Returns: 
 
-<!-- ##### STRUCT GtkModelSimple ##### -->
+<!-- ##### SECTION ./tmpl/gtkliststore.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@parent: 
-@stamp: 
 
-<!-- ##### MACRO gtk_marshal_BOOL__POINTER_INT_INT_UINT ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gtkliststore.sgml:Short_Description ##### -->
 
-</para>
 
 
-<!-- ##### FUNCTION gtk_model_simple_node_child_toggled ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gtkliststore.sgml:Title ##### -->
+GtkListStore
+
 
+<!-- ##### SECTION ./tmpl/gtkmain.sgml:Long_Description ##### -->
+<para>
+GTK uses an event oriented programming model. While conventional C programs
+have control over the program flow all the time this does not apply to 
+applications written using GTK. Instead you set up some objects and 
+register some functions (<quote>callbacks</quote>) to be called whenever 
+some event occurs and give control to the GTK mainloop (e.g. by calling 
+gtk_main).
 </para>
 
-@simple: 
-@path: 
-@iter: 
+<example>
+<title> Typical <function>main</function> function for a GTK application</title>
+<programlisting>
+int 
+main (int argc, char **argv)
+{
+  /* Initialize i18n support */
+  gtk_set_locale ();
 
-<!-- ##### FUNCTION gtk_marshal_NONE__POINTER_POINTER ##### -->
-<para>
+  /* Initialize the widget set */
+  gtk_init (&amp;argc, &amp;argv);
 
-</para>
+  /* Create the main window */
+  mainwin = gtk_window_new (GTK_WINDOW_TOPLEVEL);
 
-@object: 
-@func: 
-@func_data: 
-@args: 
+  /* Set up our GUI elements */
+  ...
 
-<!-- ##### FUNCTION gtk_theme_engine_ref ##### -->
-<para>
+  /* Show the application window */
+  gtk_widget_showall (mainwin);
 
-</para>
+  /* Let the user interact with our application */
+  gtk_main ();
 
-@engine: 
+  /* The user lost interest */
+  gtk_exit (0);
+}
+</programlisting>
+</example>
 
-<!-- ##### FUNCTION gtk_marshal_NONE__INT_INT ##### -->
-<para>
 
+<!-- ##### SECTION ./tmpl/gtkmain.sgml:See_Also ##### -->
+<para>
 </para>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
 
-<!-- ##### ENUM GtkCellRendererType ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gtkmain.sgml:Short_Description ##### -->
+Mainloop and event handling
 
-</para>
 
-@GTK_CELL_RENDERER_SELECTED: 
-@GTK_CELL_RENDERER_PRELIT: 
-@GTK_CELL_RENDERER_INSENSITIVE: 
+<!-- ##### SECTION ./tmpl/gtkmain.sgml:Title ##### -->
+General
 
-<!-- ##### FUNCTION gtk_marshal_NONE__NONE ##### -->
+
+<!-- ##### SECTION ./tmpl/gtkmarshal.sgml:Long_Description ##### -->
+<refsect2>
+<title>What are Signal Marshallers?</title>
+<para>
+Marshals are functions which all have the same prototype:
+they take a #GtkObject, a #GtkSignalFunc, a #gpointer,
+and an array of argument values.
+The functions are names gtk_marshall_RETURNTYPE__PARAMTYPE1_PARAMTYPE2....
+</para>
+<para>
+They then call a native function:  the GtkObject is the first
+parameter passed in.  The arguments are passed in the native
+calling convention:  chars, shorts, ints, longs may be packed
+on the stack, or tucked in registers:  it doesn't matter
+because the same calling convention will be generated
+inside the gtkmarshal code as is expected where you define
+your handlers.
+</para>
+<para>
+So the function named:
+<programlisting>
+gtk_marshal_BOOL__POINTER_INT_INT_UINT(GtkObject*, GtkSignalFunc, gpointer, GtkArg*);
+</programlisting>
+will call the #GtkSignalFunc assuming it was a function with signature:
+<programlisting>
+gboolean sigfunc(gpointer,gint,gint,guint);
+</programlisting>
+</para>
+</refsect2>
+<refsect2>
+<title>Writing Custom Marshals</title>
+<para>
+Marshals are primarily used as arguments to gtk_signal_new().
+Sometimes, you may find that a marshaller you need isn't available
+in the standard list.  Then you have to write your own.
+</para>
 <para>
+If you wish to define a signal with a new type of argument list.
+Suppose you want 2 pointers and 2 integers.
+You would write:
+<programlisting>
+typedef int (*GtkSignal_INT__POINTER_POINTER_INT_INT)(
+                       gpointer, gpointer, gint, gint
+);
 
+void marshal_INT__POINTER_POINTER_INT_INT(GtkObject*    object,
+                                          GtkSignalFunc func,
+                                          gpointer      func_data,
+                                           GtkArg*       args)
+{
+       GtkSignal_NONE__POINTER_POINTER_INT_INT rfunc;
+       gint* return_val;
+       return_val = GTK_RETLOC_INT(args[4]);
+       rfunc = (GtkSignal_INT__POINTER_POINTER_INT_INT)func;
+       *return_val = (*rfunc)(object,
+                               GTK_VALUE_POINTER(args[0]),
+                               GTK_VALUE_POINTER(args[1]),
+                               GTK_VALUE_INT(args[2]),
+                               GTK_VALUE_INT(args[3]),
+                               func_data);
+}
+</programlisting>
 </para>
+</refsect2>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
 
-<!-- ##### FUNCTION gtk_text_mark_deleted ##### -->
+<!-- ##### SECTION ./tmpl/gtkmarshal.sgml:See_Also ##### -->
 <para>
+<variablelist>
+
+<varlistentry>
+<term>#GtkSignal</term>
+<listitem><para>The signal handling functions (of which marshallers are 
+really an implementation detail).</para></listitem>
+</varlistentry>
 
+</variablelist>
 </para>
 
-@mark: 
-@Returns: 
 
-<!-- ##### MACRO gtk_marshal_BOOL__POINTER_STRING_STRING_POINTER ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gtkmarshal.sgml:Short_Description ##### -->
+Functions to adapt C structures to native calling convention.
 
-</para>
 
+<!-- ##### SECTION ./tmpl/gtkmarshal.sgml:Title ##### -->
+Signal Marshallers
 
-<!-- ##### SIGNAL GtkEditable::set-editable ##### -->
+
+<!-- ##### SECTION ./tmpl/gtkmenufactory.sgml:Long_Description ##### -->
 <para>
-Determines if the user can edit the text in the editable
-widget or not. This is meant to be overriden by 
-child classes and should not generally useful to
-applications.
+
 </para>
 
-@editable: the object which received the signal.
-@is_editable: %TRUE if the user is allowed to edit the text
-  in the widget.
 
-<!-- ##### FUNCTION gtk_model_simple_node_deleted ##### -->
+<!-- ##### SECTION ./tmpl/gtkmenufactory.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@simple: 
-@path: 
-@iter: 
 
-<!-- ##### SIGNAL GtkEditable::delete-text ##### -->
-<para>
-This signal is emitted when text is deleted from
-the widget by the user. The default handler for
-this signal will normally be responsible for inserting
-the text, so by connecting to this signal and then
-stopping the signal with gtk_signal_emit_stop(), it
-is possible to modify the inserted text, or prevent
-it from being inserted entirely. The @start_pos
-and @end_pos parameters are interpreted as for
-gtk_editable_delete_text()
-</para>
+<!-- ##### SECTION ./tmpl/gtkmenufactory.sgml:Short_Description ##### -->
 
-@editable: the object which received the signal.
-@start_pos: the starting position.
-@end_pos: the end position.
 
-<!-- ##### FUNCTION gtk_ruler_draw_ticks ##### -->
+
+<!-- ##### SECTION ./tmpl/gtkmenufactory.sgml:Title ##### -->
+Menu Factory
+
+
+<!-- ##### SECTION ./tmpl/gtkprivate.sgml:Long_Description ##### -->
 <para>
 
 </para>
 
-@ruler: the gtkruler
 
-<!-- ##### SIGNAL GtkEditable::kill-line ##### -->
+<!-- ##### SECTION ./tmpl/gtkprivate.sgml:See_Also ##### -->
 <para>
-An action signal. Delete a single line.
+
 </para>
 
-@editable: the object which received the signal.
-@direction: the direction in which to delete. Positive
-   indicates forward deletion, negative, backwards deletion.
 
-<!-- ##### FUNCTION gtk_themes_init ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gtkprivate.sgml:Short_Description ##### -->
 
-</para>
 
-@argc: 
-@argv: 
 
-<!-- ##### FUNCTION gtk_type_register_enum ##### -->
+<!-- ##### SECTION ./tmpl/gtkprivate.sgml:Title ##### -->
+Private Information
+
+
+<!-- ##### SECTION ./tmpl/gtkrc.sgml:Long_Description ##### -->
 <para>
-Register a new set of enum @values and give them the name in
-@type_name.
+GTK+ provides resource file mechanism for configuring
+various aspects of the operation of a GTK+ program
+at runtime.
 </para>
 
-@type_name: must not be null.
-@values: GtkEnumValue*
-@Returns: 
+<refsect2><title>Default files</title>
+<para>
+An application can cause GTK+ to parse a specific RC
+file by calling gtk_rc_parse(). In addition to this,
+certain files will be read at the end of gtk_init().
+Unless modified, the files looked for will be <filename>.gtkrc</filename>
+in the users home directory, and 
+<filename>$localstatedir/gtk/gtkrc</filename> 
+(<literal>$localstatedir</literal> defaults to 
+<filename>/usr/local/etc</filename>).
+</para>
+<para>
+The set of these <firstterm>default</firstterm> files
+can be retrieved with gtk_rc_get_default_files()
+and modified with gtk_rc_add_default_file() and
+gtk_rc_set_default_files().
+</para>
+<para>
+For each default file, in addition to the file itself,
+GTK+ will look for a locale-specific file that will
+be parsed in addition to the main file. For instance,
+if <literal>LANG</literal> is set to <literal>ja_JP.ujis</literal>,
+when loading the default file <filename>~/.gtkrc</filename>
+then GTK+ looks for <filename>~/.gtkrc.ja_JP.ujis</filename>,
+<filename>~/.gtkrc.ja_JP</filename>, and
+<filename>~/.gtkrc.ja</filename>, and parses the
+first one it finds.
+</para>
+</refsect2>
 
-<!-- ##### SECTION ./tmpl/gtkmenufactory.sgml:Title ##### -->
-Menu Factory
+<refsect2><title>Pathnames and patterns</title>
+<para>
+A resource file defines a number of styles and key bindings and
+attaches them to particular widgets. The attachment is done
+by the <literal>widget</literal>, <literal>widget_class</literal>,
+and <literal>class</literal> declarations. As an example
+of such a statement:
+<programlisting>
+widget "mywindow.*.GtkEntry" style "my-entry-class"
+</programlisting>
+attaches the style <literal>"my-entry-class"</literal>
+to all widgets whose <firstterm>widget class</firstterm>
+matches the <firstterm>pattern</firstterm>
+<literal>"mywindow.*.GtkEntry"</literal>.
+</para>
+<para>
+The patterns here are given in the standard shell glob
+syntax. The <literal>"?"</literal> wildcard matches
+any character, while <literal>"*"</literal> matches
+zero or more of any character. The three types of
+matching are against the widget path, the
+<firstterm>class path</firstterm> and the class
+heirarchy. Both the widget and the class paths consists of a
+<literal>"."</literal> separated list of all the
+parents of the widget and the widget itself from
+outermost to innermost. The difference is that in
+the widget path, the name assigned by
+<function>gtk_widget_set_name()</function> is used
+if present, otherwise the class name of the widget, while
+for the widget path, the class name is always used.
+</para>
+<para>
+So, if you have a <classname>GtkEntry</classname> named
+<literal>"myentry"</literal>, inside of a of a window
+named <literal>"mywindow"</literal>, then the
+widget path is:
+<programlisting>
+"mwindow.GtkHBox.myentry"
+</programlisting>
+while the class path is:
+<programlisting>
+"GtkWindow.GtkHBox.GtkEntry"
+</programlisting>
+</para>
+<para>
+Matching against class is a little different. The pattern
+match is done against all class names in the widgets
+class heirarchy (not the layout heirarchy) in sequence, so the
+pattern:
+<programlisting>
+class "GtkButton" style "my-style"
+</programlisting>
+will match not just <classname>GtkButton</classname> widgets,
+but also <classname>GtkToggleButton</classname> and
+<classname>GtkCheckButton</classname> widgets, since
+those classes derive from <classname>GtkButton</classname>.
+</para>
+</refsect2>
 
+<refsect2><title>Toplevel declarations</title>
+<para>
+An RC file is a text file which is composed of a sequence
+of declarations. '#' characters delimit comments and
+the portion of a line after a '#' is ignored when parsing
+an RC file.
+</para>
 
-<!-- ##### VARIABLE gtk_debug_flags ##### -->
 <para>
+The possible toplevel declarations are:
 
+<variablelist>
+  <varlistentry>
+    <term><literal>binding <replaceable>name</replaceable>
+     { ... }</literal></term>
+    <listitem>
+      <para>Declare a binding set</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><literal>class <replaceable>pattern</replaceable> 
+          [ style | binding [ : <replaceable>priority</replaceable> ]]
+          <replaceable>name</replaceable></literal></term>
+    <listitem>
+     <para>Specify a style or binding set for a particular
+     branch of the inheritance heirarchy.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><literal>include <replaceable>filename</replaceable></literal></term>
+    <listitem>
+      <para>Parse another file at this point</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><literal>module_path <replaceable>path></replaceable></literal></term>
+    <listitem>
+      <para>Sets a path (a list of directories separated
+      by colons) that will be searched for theme engines referenced in
+      RC files.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><literal>pixmap_path <replaceable>path></replaceable></literal></term>
+    <listitem>
+      <para>Sets a path (a list of directories separated
+      by colons) that will be searched for pixmaps referenced in
+      RC files.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><literal>style <replaceable>name</replaceable> [ =
+    <replaceable>parent</replaceable> ] { ... }</literal></term>
+    <listitem>
+      <para>Declare a style</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><literal>widget <replaceable>pattern</replaceable> 
+          [ style | binding [ : <replaceable>priority</replaceable> ]]
+          <replaceable>name</replaceable></literal></term>
+    <listitem>
+     <para>Specify a style or binding set for a particular
+     group of widgets by matching on the widget pathname.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><literal>widget_class <replaceable>pattern</replaceable> 
+          [ style | binding [ : <replaceable>priority</replaceable> ]]
+          <replaceable>name</replaceable></literal></term>
+    <listitem>
+     <para>Specify a style or binding set for a particular
+     group of widgets by matching on the class pathname.</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
 </para>
+</refsect2>
 
+<refsect2><title>Styles</title>
+<para>
+A RC style is specified by a <literal>style</literal> 
+declaration in a RC file, and then bound to widgets
+with a <literal>widget</literal>, <literal>widget_class</literal>,
+or <literal>class</literal> declaration. All styles
+applying to a particular widget are composited together
+with <literal>widget</literal> declarations overriding
+<literal>widget_class</literal> declarations which, in
+turn, override <literal>widget</literal> declarations.
+Within each type of declaration, later declarations override
+earlier ones.
+</para>
 
-<!-- ##### MACRO gtk_widget_set_visual ##### -->
 <para>
+Within a <literal>style</literal> declaration, the possible
+elements are:
 
+<variablelist>
+  <varlistentry>
+    <term><literal>bg[<replaceable>state</replaceable>] =
+      <replaceable>color</replaceable></literal></term>
+     <listitem>
+       <para>
+         Set color used for the background of most widgets.
+       </para>
+     </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><literal>fg[<replaceable>state</replaceable>] =
+      <replaceable>color</replaceable></literal></term>
+     <listitem>
+       <para>
+         Set color used for the foreground of most widgets.
+       </para>
+     </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><literal>base[<replaceable>state</replaceable>] =
+      <replaceable>color</replaceable></literal></term>
+     <listitem>
+       <para>
+         Set color used for the background of widgets displaying
+         editable text. This color is used for the background
+         of, among others, #GtkText, #GtkEntry, #GtkList, and #GtkClist.
+       </para>
+     </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><literal>text[<replaceable>state</replaceable>] =
+      <replaceable>color</replaceable></literal></term>
+     <listitem>
+       <para>
+         Set color used for foreground of widgets using
+         <literal>base</literal> for the background color.
+       </para>
+     </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><literal>bg_text[<replaceable>state</replaceable>] =
+      <replaceable>color</replaceable></literal></term>
+     <listitem>
+       <para>
+         Set a background pixmap to be used in place of
+         the <literal>bg</literal> color (or for #GtkText,
+         in place of the <literal>base</literal> color.
+       </para>
+     </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><literal>font = <replaceable>font</replaceable></literal></term>
+     <listitem>
+       <para>
+         Set the font for a widget.
+       </para>
+     </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><literal>fontset = <replaceable>font</replaceable></literal></term>
+     <listitem>
+       <para>
+         Set the fontset for a widget. Overrides any
+         <literal>font</literal> declarations.
+       </para>
+     </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><literal>stock[<replaceable>"stock-id"</replaceable>] = { <replaceable>icon source specifications</replaceable> }</literal></term>
+     <listitem>
+       <para>
+        Defines the icon for a stock item.
+       </para>
+     </listitem>
+  </varlistentry>
+</variablelist>
 </para>
+<para>
+The colors and background pixmaps are specified as a function of the
+state of the widget. The states are:
 
-@w: 
-@v: 
-@widget: 
-@visual: 
+<variablelist>
+  <varlistentry>
+    <term><literal>NORMAL</literal></term>
+    <listitem>
+      <para>
+        A color used for a widget in its normal state
+      </para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><literal>ACTIVE</literal></term>
+    <listitem>
+      <para>
+        A variant of the <literal>NORMAL</literal> color used when the
+        widget is in the %GTK_STATE_ACTIVE state, and also for
+        the trough of a ScrollBar, tabs of a NoteBook
+        other than the current tab and similar areas.
+        Frequently, this should be a darker variant
+        of the <literal>NORMAL</literal> color.
+      </para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><literal>PRELIGHT</literal></term>
+    <listitem>
+      <para>
+        A color used for widgets in the %GTK_STATE_PRELIGHT state. This
+        state is the used for Buttons and MenuItems
+        that have the mouse cursor over them, and for 
+        their children.
+      </para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><literal>SELECTED</literal></term>
+    <listitem>
+      <para>
+        A color used to highlight data selected by the user.
+        for instance, the selected ListItems in a List widget, and the
+        selection in an Editable widget.
+      </para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><literal>INSENSITIVE</literal></term>
+    <listitem>
+      <para>
+        A color used for the background of widgets that have
+        been set insensitive with gtk_widget_set_sensitive()
+      </para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+</para>
 
-<!-- ##### FUNCTION gtk_widget_setv ##### -->
 <para>
+Colors can be specified as a string <literal>"&hash;rrrrggggbbbb"</literal>,
+<literal>"&hash;rrrgggbbb"</literal>, <literal>"&hash;rrggbb"</literal>,
+or <literal>"&hash;rgb"</literal>, where <literal>r</literal>
+<literal>g</literal>, and <literal>b</literal> are
+hex digits, or they can be specified as a triplet of floats
+<literal>{ <replaceable>r</replaceable>, <replaceable>g</replaceable>,
+<replaceable>b</replaceable>}</literal>.
+</para>
 
+<para>
+In a <literal>stock</literal> definition, icon sources are specified as a
+4-tuple of image filename, text direction, widget state, and size, in that
+order.  Each icon source specifies an image filename to use with a given
+direction, state, and size. The <literal>*</literal> character can be used as a
+wildcard, and if direction/state/size are omitted they default to
+<literal>*</literal>. So for example, the following specifies different icons to
+use for left-to-right and right-to-left languages:
+<programlisting>
+stock["my-stock-item"] = 
+{
+  { "itemltr.png", LTR, *, * },
+  { "itemrtl.png", RTL, *, * }
+}
+</programlisting>
+This could be abbreviated as follows:
+<programlisting>
+stock["my-stock-item"] = 
+{
+  { "itemltr.png", LTR },
+  { "itemrtl.png", RTL }
+}
+</programlisting>
 </para>
 
-@widget: 
-@nargs: 
-@args: 
+<para>
+You can specify custom icons for specific sizes, as follows:
+<programlisting>
+stock["my-stock-item"] = 
+{
+  { "itemmenusize.png", *, *, "gtk-menu" },
+  { "itemtoolbarsize.png", *, *, "gtk-large-toolbar" }
+  { "itemgeneric.png" } /* implicit *, *, * as a fallback */
+}
+</programlisting>
+The sizes that come with GTK+ itself are <literal>"gtk-menu"</literal>,
+<literal>"gtk-small-toolbar"</literal>, <literal>"gtk-large-toolbar"</literal>,
+<literal>"gtk-button"</literal>, <literal>"gtk-dialog"</literal>. Applications
+can define other sizes.
+</para>
 
-<!-- ##### MACRO gtk_marshal_NONE__UINT_POINTER_UINT_ENUM_ENUM_POINTER ##### -->
 <para>
+It's also possible to use custom icons for a given state, for example:
+You can specify custom icons for specific sizes, as follows:
+<programlisting>
+stock["my-stock-item"] = 
+{
+  { "itemprelight.png", *, PRELIGHT },
+  { "iteminsensitive.png", *, INSENSITIVE }, 
+  { "itemgeneric.png" } /* implicit *, *, * as a fallback */
+}
+</programlisting>
+</para>
 
+<para>
+When selecting an icon source to use, GTK+ will consider text direction most
+important, state second, and size third. It will select the best match based on
+those criteria. If an attribute matches exactly (e.g. you specified
+<literal>PRELIGHT</literal> or specified the size), GTK+ won't modify the image;
+if the attribute matches with a wildcard, GTK+ will scale or modify the image to
+match the state and size the user requested.
 </para>
 
+</refsect2>
 
-<!-- ##### MACRO GTK_TYPE_SEQNO ##### -->
+<refsect2><title>Key bindings</title>
 <para>
-Convert a gtk type into its sequence number
+Key bindings allow the user to specify actions to be 
+taken on particular key presses. The form of a binding
+set declaration is:
 </para>
 
-@type: 
+<programlisting>
+binding <replaceable>name</replaceable> {
+  bind <replaceable>key</replaceable> { 
+    <replaceable>signalname</replaceable> (<replaceable>param</replaceable>, ...)
+    ...
+  }
+  ...
+}
+</programlisting>
 
-<!-- ##### SECTION ./tmpl/gtkimcontextsimple.sgml:See_Also ##### -->
 <para>
-
+<replaceable>key</replaceable> is a string consisting of a 
+series of modifiers followed by the name of a key. The
+modifiers can be:
+<simplelist>
+<member><literal>&lt;alt&gt;</literal></member>
+<member><literal>&lt;control&gt;</literal></member>
+<member><literal>&lt;mod1&gt;</literal></member>
+<member><literal>&lt;mod2&gt;</literal></member>
+<member><literal>&lt;mod3&gt;</literal></member>
+<member><literal>&lt;mod4&gt;</literal></member>
+<member><literal>&lt;mod5&gt;</literal></member>
+<member><literal>&lt;release&gt;</literal></member>
+<member><literal>&lt;shft&gt;</literal></member>
+<member><literal>&lt;shift&gt;</literal></member>
+</simplelist>
+<literal>&lt;shft&gt;</literal> is an alias for 
+<literal>&lt;shift&gt;</literal> and 
+<literal>&lt;alt&gt;</literal> is an alias for
+<literal>&lt;mod1&gt;</literal>.
+</para>
+
+<para>
+The action that is bound to the key is a sequence
+of signal names (strings) followed by parameters for 
+each signal. The signals must be action signals.
+(See gtk_signal_new()). Each parameter can be
+a float, integer, string, or unquoted string
+representing an enumeration value. The types of
+the parameters specified must match the types of the 
+parameters of the signal.
+</para>
+
+<para>
+Binding sets are connected to widgets in the
+same manner as styles, with one addition. 
+A priority can be specified for each pattern,
+and within each type of pattern, binding sets
+override other binding sets first by priority,
+and only then by order of specification. (Later
+overrides earlier). The priorities that can
+be specified are (highest to lowest):
+<simplelist>
+<member><literal>HIGHEST</literal></member>
+<member><literal>RC</literal></member>
+<member><literal>APPLICATION</literal></member>
+<member><literal>GTK</literal></member>
+<member><literal>LOWEST</literal></member>
+</simplelist>
+<literal>RC</literal> is the default for bindings
+read from an RC file, <literal>APPLICATION</literal>
+should be used for bindings an application sets
+up, and <literal>GTK</literal> is used for bindings
+that GTK+ creates internally.
 </para>
+</refsect2>
 
 
-<!-- ##### ENUM GtkMenuFactoryType ##### -->
+<!-- ##### SECTION ./tmpl/gtkrc.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@GTK_MENU_FACTORY_MENU: 
-@GTK_MENU_FACTORY_MENU_BAR: 
-@GTK_MENU_FACTORY_OPTION_MENU: 
 
-<!-- ##### MACRO gtk_marshal_NONE__STRING ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gtkrc.sgml:Short_Description ##### -->
+Routines for handling resource files
 
-</para>
 
+<!-- ##### SECTION ./tmpl/gtkrc.sgml:Title ##### -->
+Resource Files
 
-<!-- ##### MACRO gtk_marshal_NONE__POINTER_POINTER_UINT_UINT ##### -->
-<para>
 
+<!-- ##### SECTION ./tmpl/gtkselection.sgml:Long_Description ##### -->
+
+<para>
+The selection mechanism provides the basis for different types
+of IPC between processes. In particular, drag and drop and
+#GtkClipboard work via selections. You will very seldom or
+never need to use most of the functions in this section directly;
+#GtkClipboard provides a nicer interface to the same functionality.
+</para>
+<para>
+Some of the datatypes defined this section are used in
+the #GtkClipboard and drag-and-drop API's as well. The
+#GtkTargetEntry structure and #GtkTargetList objects represent
+lists of data types that are supported when sending or
+receiving data. The #GtkSelectionData object is used to
+store a chunk of data along with the data type and other
+associated information.
 </para>
 
 
-<!-- ##### MACRO GTK_WIDGET_IS_OFFSCREEN ##### -->
+<!-- ##### SECTION ./tmpl/gtkselection.sgml:See_Also ##### -->
 <para>
+<variablelist>
+
+<varlistentry>
+<term>#GtkWidget</term>
+<listitem><para>Much of the operation of selections happens via
+             signals for #GtkWidget. In particular, if you are
+             using the functions in this section, you may need
+             to pay attention to ::selection_get,
+             ::selection_received,  and :selection_clear_event
+             signals.</para></listitem>
+</varlistentry>
+
+</variablelist>
 
 </para>
 
-@obj: 
 
-<!-- ##### MACRO GTK_MAX_COMPOSE_LEN ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gtkselection.sgml:Short_Description ##### -->
+Functions for handling inter-process communication via selections.
 
-</para>
 
+<!-- ##### SECTION ./tmpl/gtkselection.sgml:Title ##### -->
+Selections
 
-<!-- ##### FUNCTION gtk_text_iter_prev_char ##### -->
-<para>
 
+<!-- ##### SECTION ./tmpl/gtksignal.sgml:Long_Description ##### -->
+<refsect2>
+<title>What are signals?</title>
+<para>
+Signals are a way to get notification when something happens
+and to customize object behavior according to the
+user's needs.
+Every <WordAsWord>signal</WordAsWord> is uniquely identified by a name,
+"class_name::signal_name", where signal_name might be something like
+"clicked" and class_name might be "GtkButton".  Note that some other class
+may also define a "clicked" callback, so long as it doesn't derive from
+#GtkButton.
+</para>
+<para>
+When they are created, they are also assigned a unique positive integer,
+the signal id (1 is the first signal id- 0 is used to flag an error).
+Each is also tied to an array of types that describes
+the prototype of the function pointer(s) (handlers) you may
+connect to the signal.  Finally, every signal has
+a default handler that is given by a function pointer
+in its class structure:  it is run by default whenever the
+signal is emitted.  (It is possible that a signal will
+be emitted and a user-defined handler will prevent the default handler
+from being run.)
+</para>
+<para>
+Signals are used by everyone, but they are only
+created on a per class basis-- so you should call
+call gtk_signal_new() unless you are writing
+a new #GtkObject type.  However, if you want to make a new signal
+for an existing type, you may use gtk_object_class_user_signal_new()
+to create a signal that doesn't correspond to a class's builtin
+methods.
+</para>
+</refsect2>
+<refsect2>
+<title>How are signals used?</title>
+<para>
+There are two basic actions in the signal handling game.
+If you want notification of an event, you must <Emphasis>connect</Emphasis>
+a function pointer and a data pointer to that signal;  the data pointer
+will be passed as the last argument to the function (so long as you
+are using the default marshalling functions).
+You will receive a connection id, a unique positive integer
+corresponding to that attachment.
+</para>
+<para>
+Functions that want to notify the user of certain actions,
+<Emphasis>emit</Emphasis> signals.
 </para>
+</refsect2>
+<refsect2>
+<title>Basic Terminology</title>
+<variablelist>
 
-@iter: 
-@Returns: 
+<varlistentry>
+<term>signal</term>
+<listitem><para>A class method, e.g. GtkButton::clicked.
+More precisely it is a unique class-branch/signal-name pair.
+This means you may not define a signal handler for a class which
+derives from GtkButton that is called clicked,
+but it is okay to share signals names if they are separate in
+the class tree.
+</para></listitem>
+</varlistentry>
 
-<!-- ##### SECTION ./tmpl/gtkprivate.sgml:Short_Description ##### -->
+<varlistentry>
+<term>default handler</term>
+<listitem><para>The object's internal method which is invoked
+when the signal is emitted.</para>
+</listitem>
+</varlistentry>
 
+<varlistentry>
+<term>user-defined handler</term>
+<listitem><para>A function pointer and data connected
+to a signal (for a particular object).</para>
+<para>There are really two types: those which are connected
+normally, and those which are connected by one 
+of the connect_after functions.  The connect_after handlers
+are always run after the default handler.</para>
+<para>Many toolkits refer to these as <wordasword>callbacks</wordasword>.</para>
+</listitem>
+</varlistentry>
 
+<varlistentry>
+<term>emission</term>
+<listitem><para>the whole process of emitting a signal,
+including the invocation of all
+the different handler types mentioned above.</para>
+</listitem>
+</varlistentry>
 
-<!-- ##### SIGNAL GtkTextView::cut-text ##### -->
-<para>
+<varlistentry>
+<term>signal id</term>
+<listitem><para>The unique positive (nonzero) integer
+used to identify a signal.  It can be used instead of 
+a name to many functions for a slight performance
+improvement.</para>
+</listitem>
+</varlistentry>
 
-</para>
+<varlistentry>
+<term>connection id</term>
+<listitem><para>The unique positive (nonzero) integer
+used to identify the connection of a user-defined handler
+to a signal.  Notice that it is allowed to connect the
+same function-pointer/user-data pair twice, so
+there is no guarantee that a function-pointer/user-data
+maps to a unique connection id.
+</para>
+</listitem>
+</varlistentry>
 
-@textview: the object which received the signal.
+</variablelist>
+</refsect2>
 
-<!-- ##### FUNCTION gtk_theme_engine_unref ##### -->
+<refsect2><title>A brief note on how they work.</title>
 <para>
-
+The functions responsible for translating an array of #GtkArgs
+to your C compiler's normal semantics are called Marshallers.
+They are identified by
+gtk_marshal_return_value__parameter_list()
+for example a C function returning a gboolean and taking a gint
+can be invoked by using gtk_marshal_BOOL__INT().
+Not all possibly combinations of return/params are available,
+of course, so if you are writing a #GtkObject with parameters
+you might have to write a marshaller.
 </para>
+</refsect2>
 
-@engine: 
 
-<!-- ##### ARG GtkTextTag:left-wrapped-line-margin-set ##### -->
+<!-- ##### SECTION ./tmpl/gtksignal.sgml:See_Also ##### -->
 <para>
+<variablelist>
+
+<varlistentry>
+<term>#GtkObject</term>
+<listitem><para>The base class for things which emit signals.</para></listitem>
+</varlistentry>
 
+</variablelist>
 </para>
 
 
-<!-- ##### STRUCT GtkDialogButton ##### -->
-<para>
-Deprecated.
-</para>
+<!-- ##### SECTION ./tmpl/gtksignal.sgml:Short_Description ##### -->
+Object methods and callbacks.
 
 
-<!-- ##### FUNCTION gtk_marshal_BOOL__POINTER ##### -->
+<!-- ##### SECTION ./tmpl/gtksignal.sgml:Title ##### -->
+Signals
+
+
+<!-- ##### SECTION ./tmpl/gtkstock.sgml:Long_Description ##### -->
 <para>
 
 </para>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
 
-<!-- ##### FUNCTION gtk_tree_store_getv ##### -->
+<!-- ##### SECTION ./tmpl/gtkstock.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@tree_store: 
-@iter: 
-@var_args: 
 
-<!-- ##### FUNCTION gtk_text_buffer_cut ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gtkstock.sgml:Short_Description ##### -->
 
-</para>
 
-@buffer: 
-@time: 
-@interactive: 
-@default_editable: 
 
-<!-- ##### SIGNAL GtkEditable::activate ##### -->
-<para>
-Indicates that the user has activated the widget
-in some fashion. Generally, this will be done
-with a keystroke. (The default binding for this
-action is Return for #GtkEntry and
-Control-Return for #GtkText.)
-</para>
+<!-- ##### SECTION ./tmpl/gtkstock.sgml:Title ##### -->
+Stock Items
 
-@editable: the object which received the signal.
 
-<!-- ##### ENUM GtkTextViewMovementStep ##### -->
+<!-- ##### SECTION ./tmpl/gtkstyle.sgml:Long_Description ##### -->
 <para>
 
 </para>
 
-@GTK_TEXT_MOVEMENT_CHAR: 
-@GTK_TEXT_MOVEMENT_POSITIONS: 
-@GTK_TEXT_MOVEMENT_WORD: 
-@GTK_TEXT_MOVEMENT_WRAPPED_LINE: 
-@GTK_TEXT_MOVEMENT_LINE: 
-@GTK_TEXT_MOVEMENT_LINE_ENDS: 
-@GTK_TEXT_MOVEMENT_BUFFER_ENDS: 
 
-<!-- ##### FUNCTION gtk_marshal_NONE__POINTER_POINTER_INT_INT ##### -->
+<!-- ##### SECTION ./tmpl/gtkstyle.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
 
-<!-- ##### ARG GtkTextTag:left-wrapped-line-margin ##### -->
-<para>
-Pixel width of the left margin of the text for lines after the first
-line in a wrapped paragraph.
-</para>
+<!-- ##### SECTION ./tmpl/gtkstyle.sgml:Short_Description ##### -->
 
 
-<!-- ##### SECTION ./tmpl/gtkdebug.sgml:See_Also ##### -->
-<para>
 
-</para>
+<!-- ##### SECTION ./tmpl/gtkstyle.sgml:Title ##### -->
+Styles
 
 
-<!-- ##### FUNCTION gtk_paint_oval ##### -->
+<!-- ##### SECTION ./tmpl/gtkthemes.sgml:Long_Description ##### -->
 <para>
 
 </para>
 
-@style: 
-@window: 
-@state_type: 
-@shadow_type: 
-@area: 
-@widget: 
-@detail: 
-@x: 
-@y: 
-@width: 
-@height: 
 
-<!-- ##### MACRO GTK_CONTAINER_RESIZE_PENDING ##### -->
+<!-- ##### SECTION ./tmpl/gtkthemes.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@obj: 
 
-<!-- ##### SIGNAL GtkEditable::copy-clipboard ##### -->
-<para>
-An action signal. Causes the characters in the current selection to
-be copied to the clipboard.
-</para>
+<!-- ##### SECTION ./tmpl/gtkthemes.sgml:Short_Description ##### -->
 
-@editable: the object which received the signal.
 
-<!-- ##### FUNCTION gtk_clist_construct ##### -->
+
+<!-- ##### SECTION ./tmpl/gtkthemes.sgml:Title ##### -->
+Themes
+
+
+<!-- ##### SECTION ./tmpl/gtktreemodelsimple.sgml:Long_Description ##### -->
 <para>
-Initializes a previously allocated #GtkCList widget for use.  This should not
-normally be used to create a #GtkCList widget.  Use gtk_clist_new() instead.
+
 </para>
 
-@clist: A pointer to an uninitialized #GtkCList widget.
-@columns: The number of columns the #GtkCList should have.
-@titles: An array of strings that should be used as the titles i
-of the columns.  There should be enough strings in the array for
-the number of columns specified.
 
-<!-- ##### FUNCTION gtk_menu_factory_remove_entries ##### -->
+<!-- ##### SECTION ./tmpl/gtktreemodelsimple.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@factory: 
-@entries: 
-@nentries: 
 
-<!-- ##### FUNCTION gtk_tree_view_move_to ##### -->
+<!-- ##### SECTION ./tmpl/gtktreemodelsimple.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/gtktreemodelsimple.sgml:Title ##### -->
+GtkModelSimple
+
+
+<!-- ##### SECTION ./tmpl/gtktreeview.sgml:Long_Description ##### -->
 <para>
 
 </para>
 
-@tree_view: 
-@path: 
-@column: 
-@row_align: 
-@col_align: 
 
-<!-- ##### FUNCTION gtk_text_buffer_find_string ##### -->
+<!-- ##### SECTION ./tmpl/gtktreeview.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@buffer: 
-@iter: 
-@str: 
-@start: 
-@end: 
-@Returns: 
-
-<!-- ##### FUNCTION gtk_marshal_NONE__INT_POINTER_INT_INT_INT_POINTER ##### -->
-<para>
 
-</para>
+<!-- ##### SECTION ./tmpl/gtktreeview.sgml:Short_Description ##### -->
 
-@object: 
-@func: 
-@func_data: 
-@args: 
 
-<!-- ##### FUNCTION gtk_marshal_INT__INT ##### -->
-<para>
 
-</para>
+<!-- ##### SECTION ./tmpl/gtktreeview.sgml:Title ##### -->
+GtkTreeView
 
-@object: 
-@func: 
-@func_data: 
-@args: 
 
-<!-- ##### FUNCTION gtk_marshal_NONE__INT_FLOAT_BOOL ##### -->
+<!-- ##### SECTION ./tmpl/gtktypeutils.sgml:Long_Description ##### -->
 <para>
-
+Gtk's type system is extensible.  Because of that, types have to be
+managed at runtime.
 </para>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
 
-<!-- ##### FUNCTION gtk_paned_compute_position ##### -->
+<!-- ##### SECTION ./tmpl/gtktypeutils.sgml:See_Also ##### -->
 <para>
-Internal function used by #GtkHPaned and #GtkVPaned
+
 </para>
 
-@paned: 
-@allocation: 
-@child1_req: 
-@child2_req: 
 
-<!-- ##### MACRO gtk_marshal_NONE__POINTER_STRING_STRING ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gtktypeutils.sgml:Short_Description ##### -->
+Handle run-time type creation.
 
-</para>
 
+<!-- ##### SECTION ./tmpl/gtktypeutils.sgml:Title ##### -->
+Types
 
-<!-- ##### FUNCTION gtk_trace_referencing ##### -->
+
+<!-- ##### SECTION ./tmpl/gtkvbbox.sgml:Long_Description ##### -->
 <para>
-Private: print debugging information while doing a gtk_object_ref() or 
-a gtk_object_unref().
+A button box should be used to provide a consistent layout of buttons
+throughout your application. There is one default layout and a default
+spacing value that are persistant across all #VButtonBox widgets.
+</para>
+<para>
+The layout/spacing can then be altered by the programmer, or if desired, by
+the user to alter the 'feel' of a program to a small degree.
+</para>
+<para>
+A #VButtonBox is created with gtk_vbutton_box_new(). Buttons are packed into
+a button box the same way as any other box, using gtk_box_pack_start() or
+gtk_box_pack_end().
+</para>
+<para>
+The default spacing between buttons can be set with
+gtk_vbutton_box_set_spacing_default() and queried with
+gtk_vbutton_box_get_spacing_default().
+</para>
+<para>
+The arrangement and layout of the buttons can be changed using
+gtk_vbutton_box_set_layout_default() and queried with
+gtk_vbutton_box_get_layout_default().
 </para>
 
-@object: object to reference or unreference.
-@func: name of caller's function to print (used within macros).
-@dummy: unused.
-@line: line number (used within macros).
-@do_ref: whether to reference or unreference.
 
-<!-- ##### MACRO GTK_VALUE_CALLBACK ##### -->
+<!-- ##### SECTION ./tmpl/gtkvbbox.sgml:See_Also ##### -->
 <para>
-Use to get the value of a GtkArg whose GtkType is GTK_TYPE_CALLBACK
+<variablelist>
+<varlistentry>
+<term>#GtkBox</term>
+<listitem><para>Used to pack widgets into button boxes.</para></listitem>
+</varlistentry><varlistentry>
+<term>#GtkButtonBox</term>
+<listitem><para>Provides functions for controlling button boxes.</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>#GtkHButtonBox</term>
+<listitem><para>Pack buttons horizontally.</para></listitem>
+</varlistentry>
+</variablelist>
 </para>
 
-@a: 
 
-<!-- ##### MACRO gtk_marshal_NONE__ENUM_FLOAT_BOOL ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gtkvbbox.sgml:Short_Description ##### -->
+a container for arranging buttons vertically.
 
-</para>
 
+<!-- ##### SECTION ./tmpl/gtkvbbox.sgml:Title ##### -->
+GtkVButtonBox
 
-<!-- ##### FUNCTION gtk_object_args_collect ##### -->
+
+<!-- ##### SECTION ./tmpl/gtkvbox.sgml:Long_Description ##### -->
 <para>
-Private: Gets an array of #GtkArgs from a va_list C structure.
+GtkVBox is a container that organizes child widgets into a single column.
 </para>
 
-@object_type: the type of object to collect arguments for.
-@arg_list_p: pointer to be filled in with a list of parsed arguments.
-@info_list_p: optional pointer for a returned list #GtkArgInfos.
-@first_arg_name: name of first argument.
-@var_args: value of first argument, followed by more key/value pairs,
-terminated by NULL.
-@Returns: an error message, or NULL on success.
-It is the caller's responsibility to call g_free() in the event of error.
-
-<!-- ##### ENUM GtkFontType ##### -->
 <para>
-A set of bit flags used to specify the type of fonts shown
-when calling gtk_font_selection_dialog_set_filter() or
-gtk_font_selection_set_filter().
+Use the #GtkBox packing interface to determine the arrangement,
+spacing, height, and alignment of GtkVBox children.
 </para>
 
-@GTK_FONT_BITMAP: bitmap fonts.
-@GTK_FONT_SCALABLE: scalable fonts.
-@GTK_FONT_SCALABLE_BITMAP: scaled bitmap fonts.
-@GTK_FONT_ALL: a bitwise combination of all of the above.
-
-<!-- ##### MACRO GTK_TYPE_STRUCTURED_LAST ##### -->
 <para>
-The last structured enumerated type value.
+All children are allocated the same width.
 </para>
 
 
-<!-- ##### MACRO GTK_OBJECT_NSIGNALS ##### -->
+<!-- ##### SECTION ./tmpl/gtkvbox.sgml:See_Also ##### -->
 <para>
-Get the number of signals defined by this object.
-</para>
+<variablelist>
 
-@obj: the object to query.
+<varlistentry>
+<term>#GtkHBox</term>
+<listitem><para>a sister class that organizes widgets into a row.</para></listitem>
+</varlistentry>
 
-<!-- ##### FUNCTION gtk_object_arg_get ##### -->
-<para>
-Private function to get an argument and argument info from an object.
+</variablelist>
 </para>
 
-@object: the object whose argument should be retrieved.
-@arg: the argument, for the name on input, the rest is filled on output.
-@info: a #GtkArgInfo structure to optionally fill in.
 
-<!-- ##### FUNCTION gtk_menu_factory_remove_subfactory ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gtkvbox.sgml:Short_Description ##### -->
+vertical container box
 
-</para>
 
-@factory: 
-@subfactory: 
-@path: 
+<!-- ##### SECTION ./tmpl/gtkvbox.sgml:Title ##### -->
+GtkVBox
 
-<!-- ##### FUNCTION gtk_type_children_types ##### -->
+
+<!-- ##### SECTION ./tmpl/gtkviewport.sgml:Long_Description ##### -->
 <para>
-Return the pointer to the type's children's types.
+
 </para>
 
-@type: GtkType
-@Returns: pointer to a GList
 
-<!-- ##### SIGNAL GtkEditable::move-page ##### -->
+<!-- ##### SECTION ./tmpl/gtkviewport.sgml:See_Also ##### -->
 <para>
-An action signal. Move the cursor by pages.
+
 </para>
 
-@editable: the object which received the signal.
-@x: Number of pages to move the cursor horizontally.
-@y: Number of pages to move the cursor vertically.
 
-<!-- ##### FUNCTION gtk_type_register_flags ##### -->
+<!-- ##### SECTION ./tmpl/gtkviewport.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/gtkviewport.sgml:Title ##### -->
+GtkViewport
+
+
+<!-- ##### SECTION ./tmpl/gtkvpaned.sgml:Long_Description ##### -->
 <para>
-Register a new set of flags @values and give them the name in
-@type_name.
+The VPaned widget is a container widget with two
+children arranged vertically. The division between
+the two panes is adjustable by the user by dragging
+a handle. See #GtkPaned for details.
 </para>
 
-@type_name: must not be null.
-@values: GtkFlagValue*
-@Returns: 
 
-<!-- ##### SIGNAL GtkTextView::scroll-text ##### -->
+<!-- ##### SECTION ./tmpl/gtkvpaned.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@textview: the object which received the signal.
-@arg1: 
 
-<!-- ##### ENUM GtkPrivateFlags ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gtkvpaned.sgml:Short_Description ##### -->
+A container with two panes arranged vertically.
 
-</para>
 
-@PRIVATE_GTK_USER_STYLE: 
-@PRIVATE_GTK_RESIZE_PENDING: 
-@PRIVATE_GTK_RESIZE_NEEDED: 
-@PRIVATE_GTK_LEAVE_PENDING: 
-@PRIVATE_GTK_HAS_SHAPE_MASK: 
-@PRIVATE_GTK_IN_REPARENT: 
-@PRIVATE_GTK_DIRECTION_SET: 
-@PRIVATE_GTK_DIRECTION_LTR: 
+<!-- ##### SECTION ./tmpl/gtkvpaned.sgml:Title ##### -->
+GtkVPaned
 
-<!-- ##### FUNCTION gtk_type_set_chunk_alloc ##### -->
+
+<!-- ##### SECTION ./tmpl/gtkvruler.sgml:Long_Description ##### -->
 <para>
-Set the mem_chunk size so it will hold @n_chunks of the objects of that @type.
+ NOTE this widget is considered too specialized/little-used for
+ GTK+, and will in the future be moved to some other package.  If
+ your application needs this widget, feel free to use it, as the
+ widget does work and is useful in some applications; it's just not
+ of general interest. However, we are not accepting new features for
+ the widget, and it will eventually move out of the GTK+
+ distribution.
+</para>
+<para>
+The VRuler widget is a widget arranged vertically creating a ruler that is
+utilized around other widgets such as a text widget. The ruler is used to show
+the location of the mouse on the window and to show the size of the window in
+specified units. The available units of measurement are GTK_PIXELS, GTK_INCHES
+and GTK_CENTIMETERS. GTK_PIXELS is the default. 
+rulers.
 </para>
 
-@type: There must be an unlocked TypeNode associated with this type otherwise nothing happens.
-@n_chunks: 
 
-<!-- ##### FUNCTION gtk_draw_oval ##### -->
+<!-- ##### SECTION ./tmpl/gtkvruler.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@style: 
-@window: 
-@state_type: 
-@shadow_type: 
-@x: 
-@y: 
-@width: 
-@height: 
 
-<!-- ##### MACRO GTK_TYPE_STRUCTURED_FIRST ##### -->
+<!-- ##### SECTION ./tmpl/gtkvruler.sgml:Short_Description ##### -->
+A vertical ruler.
+
+
+<!-- ##### SECTION ./tmpl/gtkvruler.sgml:Title ##### -->
+GtkVRuler
+
+
+<!-- ##### SECTION ./tmpl/gtkvscale.sgml:Long_Description ##### -->
 <para>
-The first structured enumerated type value.
+The #GtkVScale widget is used to allow the user to select a value using
+a vertical slider.
+A #GtkAdjustment is used to set the initial value, the lower
+and upper bounds, and the step and page increments.
+</para>
+<para>
+The position to show the current value, and the number of decimal places
+shown can be set using the parent #GtkScale class's functions.
 </para>
 
 
-<!-- ##### STRUCT GtkSignalQuery ##### -->
+<!-- ##### SECTION ./tmpl/gtkvscale.sgml:See_Also ##### -->
 <para>
-This structure contains all the information about a particular
-signal:  its name, the type it affects, the signature of the handlers,
-and its unique identifying integer.
+
 </para>
 
-@object_type: 
-@signal_id: 
-@signal_name: 
-@is_user_signal: 
-@signal_flags: 
-@return_val: 
-@nparams: 
-@params: 
 
-<!-- ##### FUNCTION gtk_type_describe_tree ##### -->
+<!-- ##### SECTION ./tmpl/gtkvscale.sgml:Short_Description ##### -->
+a vertical slider widget for selecting a value from a range.
+
+
+<!-- ##### SECTION ./tmpl/gtkvscale.sgml:Title ##### -->
+GtkVScale
+
+
+<!-- ##### SECTION ./tmpl/gtkvscrollbar.sgml:Long_Description ##### -->
 <para>
-Given a @type, describe all of its children, and their children.  Only
-show the size if @show_size is true.
+The VScrollbar widget is a widget arranged vertically creating a scroll bar. See
+#GtkScrollbar for details on scrollbars. #GtkAdjustment pointers may be added to
+handle the adjustment of the scrollbars or it may be left NULL in which case one
+will be created you. See #GtkAdjustment for details.
 </para>
 
-@type: GtkType
-@show_size: gboolean
 
-<!-- ##### FUNCTION gtk_text_mark_is_visible ##### -->
+<!-- ##### SECTION ./tmpl/gtkvscrollbar.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@mark: 
-@Returns: 
 
-<!-- ##### FUNCTION gtk_marshal_BOOL__POINTER_INT_INT_INT ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gtkvscrollbar.sgml:Short_Description ##### -->
+A vertical scrollbar
 
-</para>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
+<!-- ##### SECTION ./tmpl/gtkvscrollbar.sgml:Title ##### -->
+GtkVScrollbar
 
-<!-- ##### SIGNAL GtkEditable::kill-char ##### -->
+
+<!-- ##### SECTION ./tmpl/gtkvseparator.sgml:Long_Description ##### -->
 <para>
-An action signal. Delete a single character.
+The #GtkVSeparator widget is a vertical separator, used to group the
+widgets within a window. It displays a vertical line with a shadow to
+make it appear sunken into the interface.
 </para>
 
-@editable: the object which received the signal.
-@direction: the direction in which to delete. Positive
-   indicates forward deletion, negative, backwards deletion.
 
-<!-- ##### SECTION ./tmpl/gtkdebug.sgml:Long_Description ##### -->
+<!-- ##### SECTION ./tmpl/gtkvseparator.sgml:See_Also ##### -->
 <para>
-
+<variablelist>
+<varlistentry>
+<term>#GtkHSeparator</term>
+<listitem><para>a horizontal separator.</para></listitem>
+</varlistentry>
+</variablelist>
 </para>
 
 
-<!-- ##### FUNCTION gtk_window_remove_embedded_xid ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gtkvseparator.sgml:Short_Description ##### -->
+a vertical separator.
 
-</para>
 
-@window: 
-@xid: 
+<!-- ##### SECTION ./tmpl/gtkvseparator.sgml:Title ##### -->
+GtkVSeparator
 
-<!-- ##### FUNCTION gtk_marshal_NONE__INT_FLOAT ##### -->
+
+<!-- ##### SECTION ./tmpl/gtkwidget.sgml:Long_Description ##### -->
 <para>
 
 </para>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
 
-<!-- ##### FUNCTION gtk_text_iter_get_pixmap ##### -->
+<!-- ##### SECTION ./tmpl/gtkwidget.sgml:See_Also ##### -->
 <para>
 
 </para>
 
-@iter: 
-@pixmap: 
-@mask: 
-@Returns: 
 
-<!-- ##### SIGNAL GtkEditable::kill-word ##### -->
-<para>
-An action signal. Delete a single word.
-</para>
+<!-- ##### SECTION ./tmpl/gtkwidget.sgml:Short_Description ##### -->
 
-@editable: the object which received the signal.
-@direction: the direction in which to delete. Positive
-   indicates forward deletion, negative, backwards deletion.
 
-<!-- ##### FUNCTION gtk_im_context_simple_add_table ##### -->
-<para>
 
-</para>
+<!-- ##### SECTION ./tmpl/gtkwidget.sgml:Title ##### -->
+GtkWidget
 
-@context_simple: 
-@data: 
-@max_seq_len: 
-@n_seqs: 
 
-<!-- ##### MACRO gtk_marshal_NONE__POINTER_UINT_UINT ##### -->
+<!-- ##### SECTION ./tmpl/gtkwindow.sgml:Long_Description ##### -->
 <para>
 
 </para>
 
 
-<!-- ##### MACRO GTK_OBJECT_CONSTRUCTED ##### -->
+<!-- ##### SECTION ./tmpl/gtkwindow.sgml:See_Also ##### -->
 <para>
-Test whether a GtkObject's arguments have been prepared.
+
 </para>
 
-@obj: the object to examine.
 
-<!-- ##### FUNCTION gtk_font_selection_dialog_set_filter ##### -->
+<!-- ##### SECTION ./tmpl/gtkwindow.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/gtkwindow.sgml:Title ##### -->
+GtkWindow
+
+
+<!-- ##### MACRO GTK_CLIST_CHILD_HAS_FOCUS ##### -->
 <para>
-Sets one of the two font filters, to limit the fonts shown.
+A macro to check whether a child widget of the CList
+has the focus.
 </para>
 
-@fsd: a #GtkFontSelectionDialog.
-@filter_type: which of the two font filters to set, either
-#GTK_FONT_FILTER_BASE or #GTK_FONT_FILTER_USER. The user filter
-can be changed by the user, but the base filter is permanent.
-@font_type: the types of font to be shown. This is a bitwise combination of
-#GTK_FONT_BITMAP, #GTK_FONT_SCALABLE and #GTK_FONT_SCALABLE_BITMAP,
-or #GTK_FONT_ALL to show all three font types.
-@foundries: a NULL-terminated array of strings containing foundry names which
-will be shown, or NULL to show all foundries.
-@weights: a NULL-terminated array of strings containing weight names which
-will be shown, or NULL to show all weights.
-@slants: a NULL-terminated array of strings containing slant names which
-will be shown, or NULL to show all slants.
-@setwidths: a NULL-terminated array of strings containing setwidth names which
-will be shown, or NULL to show all setwidths.
-@spacings: a NULL-terminated array of strings containing spacings which
-will be shown, or NULL to show all spacings.
-@charsets: a NULL-terminated array of strings containing charset names which
-will be shown, or NULL to show all charsets.
+@clist: The #GtkCList widget to check.
 
-<!-- ##### SIGNAL GtkTextView::delete-text ##### -->
+<!-- ##### MACRO GTK_CONTAINER_RESIZE_PENDING ##### -->
 <para>
 
 </para>
 
-@textview: the object which received the signal.
-@arg1: 
-@arg2: 
+@obj: 
 
-<!-- ##### FUNCTION gtk_container_get_toplevels ##### -->
+<!-- ##### MACRO GTK_MAX_COMPOSE_LEN ##### -->
 <para>
 
 </para>
 
-@Returns: 
 
-<!-- ##### MACRO GTK_TYPE_NUM_BUILTINS ##### -->
+<!-- ##### MACRO GTK_NOTE ##### -->
 <para>
-No idea.
+
 </para>
 
+@type: 
+@action: 
 
-<!-- ##### MACRO GTK_TYPE_MAKE ##### -->
+<!-- ##### MACRO GTK_OBJECT_CONSTRUCTED ##### -->
 <para>
-Combine a fundemantal type and a sequence number to create a gtk type.
+Test whether a GtkObject's arguments have been prepared.
 </para>
 
-@parent_t: 
-@seqno: 
+@obj: the object to examine.
 
-<!-- ##### SECTION ./tmpl/gtkmarshal.sgml:Short_Description ##### -->
-Functions to adapt C structures to native calling convention.
+<!-- ##### MACRO GTK_OBJECT_NSIGNALS ##### -->
+<para>
+Get the number of signals defined by this object.
+</para>
 
+@obj: the object to query.
 
-<!-- ##### MACRO GTK_TYPE_FLAT_LAST ##### -->
+<!-- ##### MACRO GTK_OBJECT_SIGNALS ##### -->
 <para>
-The last "flat" (no struct) enumerated type value.
+Get the array of signals defined for this object.
 </para>
 
+@obj: the object to fetch the signals from.
 
-<!-- ##### FUNCTION gtk_tree_selection_set_tree_view ##### -->
+<!-- ##### MACRO GTK_PRIVATE_FLAGS ##### -->
 <para>
 
 </para>
 
-@selection: 
-@tree_view: 
+@wid: 
 
-<!-- ##### FUNCTION gtk_text_mark_unref ##### -->
+<!-- ##### MACRO GTK_PRIVATE_SET_FLAG ##### -->
 <para>
 
 </para>
 
-@mark: 
+@wid: 
+@flag: 
 
-<!-- ##### FUNCTION gtk_marshal_NONE__POINTER ##### -->
+<!-- ##### MACRO GTK_PRIVATE_UNSET_FLAG ##### -->
 <para>
 
 </para>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
+@wid: 
+@flag: 
 
-<!-- ##### FUNCTION gtk_marshal_NONE__POINTER_INT_POINTER ##### -->
+<!-- ##### MACRO GTK_TREE_SELECTION ##### -->
 <para>
-
+A macro that returns a GList that contains the selection of the root tree of @obj.
 </para>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
+@obj: A pointer to the #GtkTree. @obj will accept any pointer, but it the pointer does not point to a #GtkTree, the results are undefined.
 
-<!-- ##### FUNCTION gtk_signal_handlers_destroy ##### -->
+<!-- ##### MACRO GTK_TYPE_FLAT_FIRST ##### -->
 <para>
-Destroy all the signal handlers connected to an object.
-This is done automatically when the object is destroyed.
+The first "flat" (no struct) enumerated type value.
 </para>
+
+
+<!-- ##### MACRO GTK_TYPE_FLAT_LAST ##### -->
 <para>
-This function is labeled private.
+The last "flat" (no struct) enumerated type value.
 </para>
 
-@object: the object whose signal handlers should be destroyed.
 
-<!-- ##### FUNCTION gtk_text_iter_in_region ##### -->
+<!-- ##### MACRO GTK_TYPE_IDENTIFIER ##### -->
 <para>
-
+Hide the name of gtk_identifier_get_type
 </para>
 
-@iter: 
-@start: 
-@end: 
-@Returns: 
 
-<!-- ##### FUNCTION gtk_type_get_varargs_type ##### -->
+<!-- ##### MACRO GTK_TYPE_MAKE ##### -->
 <para>
-Get the varargs type associated with @foreign_type
+Combine a fundemantal type and a sequence number to create a gtk type.
 </para>
 
-@foreign_type: GtkType
-@Returns: GtkType
+@parent_t: 
+@seqno: 
 
-<!-- ##### SIGNAL GtkEditable::changed ##### -->
+<!-- ##### MACRO GTK_TYPE_NUM_BUILTINS ##### -->
 <para>
-Indicates that the user has changed the contents
-of the widget.
+No idea.
 </para>
 
-@editable: the object which received the signal.
 
-<!-- ##### FUNCTION gtk_tree_view_column_get_size ##### -->
+<!-- ##### MACRO GTK_TYPE_SEQNO ##### -->
 <para>
+Convert a gtk type into its sequence number
+</para>
+
+@type: 
 
+<!-- ##### MACRO GTK_TYPE_STRUCTURED_FIRST ##### -->
+<para>
+The first structured enumerated type value.
 </para>
 
-@tree_column: 
-@Returns: 
 
-<!-- ##### STRUCT GtkMenuFactory ##### -->
+<!-- ##### MACRO GTK_TYPE_STRUCTURED_LAST ##### -->
 <para>
+The last structured enumerated type value.
+</para>
 
+
+<!-- ##### MACRO GTK_VALUE_ARGS ##### -->
+<para>
+Use to get the value of a GtkArg whose GtkType is GTK_TYPE_ARGS
 </para>
 
-@path: 
-@type: 
-@accel_group: 
-@widget: 
-@subfactories: 
+@a: 
 
-<!-- ##### SIGNAL GtkTextView::delete-at-cursor ##### -->
+<!-- ##### MACRO GTK_VALUE_CALLBACK ##### -->
 <para>
+Use to get the value of a GtkArg whose GtkType is GTK_TYPE_CALLBACK
+</para>
 
+@a: 
+
+<!-- ##### MACRO GTK_VALUE_C_CALLBACK ##### -->
+<para>
+Use to get the value of a GtkArg whose GtkType is GTK_TYPE_C_CALLBACK
 </para>
 
-@textview: the object which received the signal.
-@arg1: 
-@arg2: 
+@a: 
 
 <!-- ##### MACRO GTK_VALUE_FOREIGN ##### -->
 <para>
@@ -1388,60 +1928,47 @@ Use to get the value of a GtkArg whose GtkType is GTK_TYPE_C_FOREIGN
 
 @a: 
 
-<!-- ##### FUNCTION gtk_object_class_user_signal_new ##### -->
+<!-- ##### MACRO GTK_WIDGET_HAS_SHAPE_MASK ##### -->
 <para>
-Define a signal-handler for a new signal on an already defined
-object.
+
 </para>
+
+@obj: 
+
+<!-- ##### MACRO GTK_WIDGET_IN_REPARENT ##### -->
 <para>
-See the signal documentation for more general information.
+
 </para>
 
-@klass: the object class to define the signal for.
-@name: the name of the signal.
-@signal_flags: the default emission behavior for the signal.
-See gtk_signal_new().
-@marshaller: a function that will take an array of GtkArgs
-and invoke the appropriate handler with the normal calling
-conventions.
-@return_val: specify the return-value type for the signal
-(or GTK_TYPE_NONE for no return-value).
-@nparams: specify the number of parameters the signal
-receives from the caller of gtk_signal_emit().
-@Varargs: list of nparams #GtkTypes to pass to the signal handlers.
-@Returns: the signal id.  (See #GtkSignals)
+@obj: 
 
-<!-- ##### SIGNAL GtkTextView::paste-text ##### -->
+<!-- ##### MACRO GTK_WIDGET_IS_OFFSCREEN ##### -->
 <para>
 
 </para>
 
-@textview: the object which received the signal.
+@obj: 
 
-<!-- ##### MACRO GTK_PRIVATE_SET_FLAG ##### -->
+<!-- ##### MACRO GTK_WIDGET_LEAVE_PENDING ##### -->
 <para>
 
 </para>
 
-@wid: 
-@flag: 
+@obj: 
 
-<!-- ##### FUNCTION gtk_ruler_draw_pos ##### -->
+<!-- ##### MACRO GTK_WIDGET_REDRAW_PENDING ##### -->
 <para>
 
 </para>
 
-@ruler: the gtkruler
+@obj: 
 
-<!-- ##### FUNCTION gtk_object_newv ##### -->
+<!-- ##### MACRO GTK_WIDGET_RESIZE_NEEDED ##### -->
 <para>
-Construct an object with an array of arguments.
+
 </para>
 
-@object_type: the type of the object to create.
-@n_args: the number of arguments to set.
-@args: an array of n_args arguments (which are name and value pairs).
-@Returns: the new GtkObject.
+@obj: 
 
 <!-- ##### MACRO GTK_WIDGET_USER_STYLE ##### -->
 <para>
@@ -1450,13 +1977,14 @@ Construct an object with an array of arguments.
 
 @obj: 
 
-<!-- ##### FUNCTION gtk_text_iter_forward_to_newline ##### -->
+<!-- ##### ENUM GtkCellRendererType ##### -->
 <para>
 
 </para>
 
-@iter: 
-@Returns: 
+@GTK_CELL_RENDERER_SELECTED: 
+@GTK_CELL_RENDERER_PRELIT: 
+@GTK_CELL_RENDERER_INSENSITIVE: 
 
 <!-- ##### ENUM GtkDebugFlag ##### -->
 <para>
@@ -1469,212 +1997,237 @@ Construct an object with an array of arguments.
 @GTK_DEBUG_DND: 
 @GTK_DEBUG_PLUGSOCKET: 
 
-<!-- ##### FUNCTION gtk_menu_factory_remove_paths ##### -->
+<!-- ##### STRUCT GtkDialogButton ##### -->
 <para>
-
+Deprecated.
 </para>
 
-@factory: 
-@paths: 
-@npaths: 
 
-<!-- ##### FUNCTION gtk_type_query ##### -->
+<!-- ##### SIGNAL GtkEditable::activate ##### -->
 <para>
-Given a type, return various interesting parameters of the type.
+Indicates that the user has activated the widget
+in some fashion. Generally, this will be done
+with a keystroke. (The default binding for this
+action is Return for #GtkEntry and
+Control-Return for #GtkText.)
 </para>
 
-@type: GtkType
-@Returns: GtkTypeQuery*
+@editable: the object which received the signal.
 
-<!-- ##### ENUM GtkTreeViewColumnType ##### -->
+<!-- ##### SIGNAL GtkEditable::changed ##### -->
 <para>
-
+Indicates that the user has changed the contents
+of the widget.
 </para>
 
-@GTK_TREE_VIEW_COLUMN_RESIZEABLE: 
-@GTK_TREE_VIEW_COLUMN_AUTOSIZE: 
-@GTK_TREE_VIEW_COLUMN_FIXED: 
+@editable: the object which received the signal.
 
-<!-- ##### SECTION ./tmpl/gtkprivate.sgml:Long_Description ##### -->
+<!-- ##### SIGNAL GtkEditable::copy-clipboard ##### -->
 <para>
-
+An action signal. Causes the characters in the current selection to
+be copied to the clipboard.
 </para>
 
+@editable: the object which received the signal.
 
-<!-- ##### MACRO GTK_TYPE_IDENTIFIER ##### -->
+<!-- ##### SIGNAL GtkEditable::cut-clipboard ##### -->
 <para>
-Hide the name of gtk_identifier_get_type
+An action signal. Causes the characters in the current
+selection to be copied to the clipboard and then deleted from
+the widget.
 </para>
 
+@editable: the object which received the signal.
 
-<!-- ##### FUNCTION gtk_marshal_NONE__INT_POINTER_INT_INT_INT ##### -->
+<!-- ##### SIGNAL GtkEditable::delete-text ##### -->
 <para>
-
+This signal is emitted when text is deleted from
+the widget by the user. The default handler for
+this signal will normally be responsible for inserting
+the text, so by connecting to this signal and then
+stopping the signal with gtk_signal_emit_stop(), it
+is possible to modify the inserted text, or prevent
+it from being inserted entirely. The @start_pos
+and @end_pos parameters are interpreted as for
+gtk_editable_delete_text()
 </para>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
+@editable: the object which received the signal.
+@start_pos: the starting position.
+@end_pos: the end position.
 
-<!-- ##### MACRO gtk_marshal_NONE__ENUM ##### -->
+<!-- ##### SIGNAL GtkEditable::insert-text ##### -->
 <para>
-
+This signal is emitted when text is inserted into
+the widget by the user. The default handler for
+this signal will normally be responsible for inserting
+the text, so by connecting to this signal and then
+stopping the signal with gtk_signal_emit_stop(), it
+is possible to modify the inserted text, or prevent
+it from being inserted entirely.
 </para>
 
+@editable: the object which received the signal.
+@new_text: the new text to insert.
+@new_text_length: the length of the new text.
+@position: the position at which to insert the new text.
+           this is an in-out paramter. After the signal
+           emission is finished, it should point after   
+           the newly inserted text.
 
-<!-- ##### FUNCTION gtk_ctree_construct ##### -->
+<!-- ##### SIGNAL GtkEditable::kill-char ##### -->
 <para>
-This function is not usually used by users.
+An action signal. Delete a single character.
 </para>
 
-@ctree: 
-@columns: 
-@tree_column: 
-@titles: 
+@editable: the object which received the signal.
+@direction: the direction in which to delete. Positive
+   indicates forward deletion, negative, backwards deletion.
 
-<!-- ##### FUNCTION gtk_draw_cross ##### -->
+<!-- ##### SIGNAL GtkEditable::kill-line ##### -->
 <para>
-
+An action signal. Delete a single line.
 </para>
 
-@style: 
-@window: 
-@state_type: 
-@shadow_type: 
-@x: 
-@y: 
-@width: 
-@height: 
+@editable: the object which received the signal.
+@direction: the direction in which to delete. Positive
+   indicates forward deletion, negative, backwards deletion.
 
-<!-- ##### FUNCTION gtk_signal_handler_pending_by_id ##### -->
+<!-- ##### SIGNAL GtkEditable::kill-word ##### -->
 <para>
-Returns whether a connection id is valid (and optionally not blocked).
+An action signal. Delete a single word.
 </para>
 
-@object: the object to search for the desired handler.
-@handler_id: the connection id.
-@may_be_blocked: whether it is acceptable to return a blocked
-handler.
-@Returns: TRUE if the signal exists and wasn't blocked,
-unless #may_be_blocked was specified.  FALSE otherwise.
+@editable: the object which received the signal.
+@direction: the direction in which to delete. Positive
+   indicates forward deletion, negative, backwards deletion.
 
-<!-- ##### FUNCTION gtk_tree_selection_new ##### -->
+<!-- ##### SIGNAL GtkEditable::move-cursor ##### -->
 <para>
-
+An action signal. Move the cursor position.
 </para>
 
-@Returns: 
+@editable: the object which received the signal.
+@x: horizontal distance to move the cursor.
+@y: vertical distance to move the cursor.
 
-<!-- ##### MACRO GTK_PRIVATE_FLAGS ##### -->
+<!-- ##### SIGNAL GtkEditable::move-page ##### -->
 <para>
-
+An action signal. Move the cursor by pages.
 </para>
 
-@wid: 
+@editable: the object which received the signal.
+@x: Number of pages to move the cursor horizontally.
+@y: Number of pages to move the cursor vertically.
 
-<!-- ##### FUNCTION gtk_model_simple_new ##### -->
+<!-- ##### SIGNAL GtkEditable::move-to-column ##### -->
 <para>
-
+An action signal. Move the cursor to the given column.
 </para>
 
-@Returns: 
+@editable: the object which received the signal.
+@column: the column to move to. (A negative value indicates
+         the last column)
 
-<!-- ##### FUNCTION gtk_marshal_BOOL__NONE ##### -->
+<!-- ##### SIGNAL GtkEditable::move-to-row ##### -->
 <para>
-
+An action signal. Move the cursor to the given row.
 </para>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
+@editable: the object which received the signal.
+@row: the row to move to. (A negative value indicates 
+      the last row)
 
-<!-- ##### FUNCTION gtk_type_free ##### -->
+<!-- ##### SIGNAL GtkEditable::move-word ##### -->
 <para>
-Given the type of an object and a pointer to it, the object is freed.
+An action signal. Move the cursor by words.
 </para>
 
-@type: GtkType
-@mem: gpointer to the object
-
-<!-- ##### SECTION ./tmpl/gtkimcontextsimple.sgml:Short_Description ##### -->
-
-
+@editable: the object which received the signal.
+@num_words: The number of words to move the
+cursor. (Can be negative).
 
-<!-- ##### FUNCTION gtk_marshal_NONE__POINTER_POINTER_POINTER ##### -->
+<!-- ##### SIGNAL GtkEditable::paste-clipboard ##### -->
 <para>
-
+An action signal. Causes the contents of the clipboard to
+be pasted into the editable widget at the current cursor
+position.
 </para>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
+@editable: the object which received the signal.
 
-<!-- ##### STRUCT GtkMenuPath ##### -->
+<!-- ##### SIGNAL GtkEditable::set-editable ##### -->
 <para>
-
+Determines if the user can edit the text in the editable
+widget or not. This is meant to be overriden by 
+child classes and should not generally useful to
+applications.
 </para>
 
-@path: 
-@widget: 
+@editable: the object which received the signal.
+@is_editable: %TRUE if the user is allowed to edit the text
+  in the widget.
 
-<!-- ##### MACRO gtk_marshal_NONE__POINTER_UINT ##### -->
+<!-- ##### ARG GtkEditable:editable ##### -->
 <para>
-
+A boolean indicating whether the widget is editable by
+the user.
 </para>
 
 
-<!-- ##### STRUCT GtkStatusbarMsg ##### -->
+<!-- ##### ARG GtkEditable:text-position ##### -->
 <para>
-Holds the data for a statusbar message. <structfield>text</structfield> holds the actual text string. <structfield>context_id</structfield> is the context that this message is associated with, and <structfield>message_id</structfield> is this particular message's identifier. However, these fields should not be modified directly.
+The position of the cursor.
 </para>
 
-@text: 
-@context_id: 
-@message_id: 
 
-<!-- ##### FUNCTION gtk_widget_render_stock_icon ##### -->
+<!-- ##### ENUM GtkFontFilterType ##### -->
 <para>
-
+A set of bit flags used to specify the filter being set
+when calling gtk_font_selection_dialog_set_filter() or
+gtk_font_selection_set_filter().
 </para>
 
-@widget: 
-@stock_id: 
-@size: 
-@detail: 
-@Returns: 
-
-<!-- ##### SECTION ./tmpl/gtkprivate.sgml:Title ##### -->
-Private Information
-
+@GTK_FONT_FILTER_BASE: the base filter, which can't be changed by the user.
+@GTK_FONT_FILTER_USER: the user filter, which can be changed from within the
+'Filter' page of the #GtkFontSelection widget.
 
-<!-- ##### ARG GtkEditable:text-position ##### -->
+<!-- ##### ENUM GtkFontType ##### -->
 <para>
-The position of the cursor.
+A set of bit flags used to specify the type of fonts shown
+when calling gtk_font_selection_dialog_set_filter() or
+gtk_font_selection_set_filter().
 </para>
 
+@GTK_FONT_BITMAP: bitmap fonts.
+@GTK_FONT_SCALABLE: scalable fonts.
+@GTK_FONT_SCALABLE_BITMAP: scaled bitmap fonts.
+@GTK_FONT_ALL: a bitwise combination of all of the above.
 
-<!-- ##### FUNCTION gtk_theme_engine_register_type ##### -->
+<!-- ##### STRUCT GtkIMContextSimple ##### -->
 <para>
 
 </para>
 
-@engine
-@parent_type
-@type_name
-@type_info
-@Returns
+@object
+@tables
+@compose_buffer
+@tentative_match
+@tentative_match_len
 
-<!-- ##### FUNCTION gtk_menu_factory_find ##### -->
+<!-- ##### STRUCT GtkLabelWord ##### -->
+<para>\r
+Internal to #GtkLabel.\r
+</para>
+
+
+<!-- ##### USER_FUNCTION GtkMenuCallback ##### -->
 <para>
 
 </para>
 
-@factory: 
-@path: 
-@Returns: 
+@widget: 
+@user_data: 
 
 <!-- ##### STRUCT GtkMenuEntry ##### -->
 <para>
@@ -1687,363 +2240,284 @@ The position of the cursor.
 @callback_data: 
 @widget: 
 
-<!-- ##### SIGNAL GtkEditable::paste-clipboard ##### -->
+<!-- ##### STRUCT GtkMenuFactory ##### -->
 <para>
-An action signal. Causes the contents of the clipboard to
-be pasted into the editable widget at the current cursor
-position.
+
 </para>
 
-@editable: the object which received the signal.
+@path: 
+@type: 
+@accel_group: 
+@widget: 
+@subfactories: 
 
-<!-- ##### FUNCTION gtk_window_add_embedded_xid ##### -->
+<!-- ##### ENUM GtkMenuFactoryType ##### -->
 <para>
 
 </para>
 
-@window: 
-@xid: 
+@GTK_MENU_FACTORY_MENU: 
+@GTK_MENU_FACTORY_MENU_BAR: 
+@GTK_MENU_FACTORY_OPTION_MENU: 
 
-<!-- ##### FUNCTION gtk_tree_view_column_set_header_active ##### -->
+<!-- ##### STRUCT GtkMenuPath ##### -->
 <para>
 
 </para>
 
-@tree_column
-@active
+@path
+@widget
 
-<!-- ##### FUNCTION gtk_object_class_user_signal_newv ##### -->
+<!-- ##### STRUCT GtkModelSimple ##### -->
 <para>
-Define a signal-handler for a new signal on an already defined
-object.
-</para>
 
-@klass: the object class to define the signal for.
-@name: the name of the signal.
-@signal_flags: the default emission behavior for the signal.
-See gtk_signal_new().
-@marshaller: takes a GtkObject, a #GtkSignalFunc, and an array
-of arguments, and invokes the function using the appropriate
-calling conventions.  Usually just select a function
-out of gtkmarshal.h.
-@return_val: specify the return-value type for the signal (possibly
-#GTK_TYPE_NONE).
-@nparams: specify the number of parameters the signal
-receives from the caller of gtk_signal_emit().
-@params: array of #GtkTypes the signal handlers for this signal
-should have in their prototype (of length nparams).
-@Returns: the signal id.  (See #GtkSignals)
+</para>
 
-<!-- ##### FUNCTION gtk_marshal_NONE__BOOL ##### -->
-<para>
+@parent: 
+@stamp: 
 
+<!-- ##### ARG GtkObject:object-signal ##### -->
+<para>
+Setting this with a GtkType of GTK_TYPE_SIGNAL connects
+the signal to the object, so that the user data and objects
+and swapped when the signal handler is invoked.
 </para>
-
-@object: 
-@func: 
-@func_data: 
-@args: 
-
-<!-- ##### FUNCTION gtk_tree_view_column_set_header_clickable ##### -->
 <para>
-
+This is useful for handlers that are primarily notifying
+other objects and could just invoke an already existing function
+if the parameters were swapped.
+See gtk_signal_connect_object() for more details.
 </para>
 
-@tree_column: 
-@active: 
 
-<!-- ##### FUNCTION gtk_color_selection_set_opacity ##### -->
+<!-- ##### ARG GtkObject:object-signal-after ##### -->
 <para>
-Controls whether opacity can be set with the #GtkColorSelection.
-If this functionality is enabled, the necessary additional widgets
-are added to the #GtkColorSelection and the opacity value can be
-retrieved via the fourth value in the color array returned by
-the gtk_color_selection_get_color() function.
+Setting this with a GtkType of GTK_TYPE_SIGNAL connects
+the signal to the object, so that the user data and objects
+and swapped when the signal handler is invoked,
+and so that the handler is invoked after all others.
 </para>
-
-@colorsel: a #GtkColorSelection.
-@use_opacity: a boolean indicating whether the opacity selection
-is enabled.
-
-<!-- ##### FUNCTION gtk_marshal_INT__POINTER ##### -->
 <para>
-
+See gtk_signal_connect_object_after() for more details.
 </para>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
 
-<!-- ##### SECTION ./tmpl/gtkmarshal.sgml:See_Also ##### -->
+<!-- ##### ARG GtkObject:signal ##### -->
 <para>
-<variablelist>
-
-<varlistentry>
-<term>#GtkSignal</term>
-<listitem><para>The signal handling functions (of which marshallers are 
-really an implementation detail).</para></listitem>
-</varlistentry>
-
-</variablelist>
+Setting this with a GtkType of GTK_TYPE_SIGNAL connects
+the signal to the object.
 </para>
 
 
-<!-- ##### SIGNAL GtkEditable::move-word ##### -->
+<!-- ##### ARG GtkObject:signal-after ##### -->
 <para>
-An action signal. Move the cursor by words.
+Setting this with a GtkType of GTK_TYPE_SIGNAL connects
+the signal to the object, so that the signal is always run
+after other user handlers and the default handler.
 </para>
 
-@editable: the object which received the signal.
-@num_words: The number of words to move the
-cursor. (Can be negative).
 
-<!-- ##### STRUCT GtkTreeViewPrivate ##### -->
+<!-- ##### ENUM GtkPrivateFlags ##### -->
 <para>
 
 </para>
 
-@model: 
-@flags: 
-@tree: 
-@tab_offset: 
-@button_pressed_node: 
-@button_pressed_tree: 
-@children: 
-@width: 
-@height: 
-@hadjustment: 
-@vadjustment: 
-@bin_window: 
-@header_window: 
-@anchor: 
-@cursor: 
-@cursor_drag: 
-@xor_gc: 
-@drag_pos: 
-@x_drag: 
-@prelight_node: 
-@prelight_tree: 
-@prelight_offset: 
-@selection: 
-@columns: 
-@column: 
-@header_height: 
+@PRIVATE_GTK_USER_STYLE: 
+@PRIVATE_GTK_RESIZE_PENDING: 
+@PRIVATE_GTK_RESIZE_NEEDED: 
+@PRIVATE_GTK_LEAVE_PENDING: 
+@PRIVATE_GTK_HAS_SHAPE_MASK: 
+@PRIVATE_GTK_IN_REPARENT: 
+@PRIVATE_GTK_DIRECTION_SET: 
+@PRIVATE_GTK_DIRECTION_LTR: 
 
-<!-- ##### MACRO GTK_WIDGET_RESIZE_NEEDED ##### -->
+<!-- ##### USER_FUNCTION GtkSignalDestroy ##### -->
 <para>
-
+A function which you can use to clean up when the
+signal handler is destroyed.
 </para>
-
-@obj: 
-
-<!-- ##### MACRO GTK_NOTE ##### -->
 <para>
-
+For example, if your handler requires a few variables
+that you made into a struct and allocated (using g_new()
+or something), then you will probably want to free
+it as soon as the hook is destroyed.  This will
+allow you to do that. (For this in particular
+it is convenient to pass g_free() as a #GtkSignalDestroy
+function).
 </para>
 
-@type: 
-@action: 
+@data: The user data associated with the hook that is being
+destroyed.
 
-<!-- ##### FUNCTION gtk_object_arg_set ##### -->
+<!-- ##### USER_FUNCTION GtkSignalMarshal ##### -->
 <para>
-Private function to set an argument and argument info to an object.
+This is currently a hack left in for a scheme wrapper library.
+It may be removed.
 </para>
-
-@object: the object whose argument should be set.
-@arg: the argument.
-@info: infomation about this type of argument in general.
-
-<!-- ##### ENUM GtkTextViewDeleteType ##### -->
 <para>
-
+Don't use it.
 </para>
 
-@GTK_TEXT_DELETE_CHAR: 
-@GTK_TEXT_DELETE_HALF_WORD: 
-@GTK_TEXT_DELETE_WHOLE_WORD: 
-@GTK_TEXT_DELETE_HALF_WRAPPED_LINE: 
-@GTK_TEXT_DELETE_WHOLE_WRAPPED_LINE: 
-@GTK_TEXT_DELETE_HALF_LINE: 
-@GTK_TEXT_DELETE_WHOLE_LINE: 
-@GTK_TEXT_DELETE_WHITESPACE: 
-@GTK_TEXT_DELETE_WHITESPACE_LEAVE_ONE: 
+@object: The object which emits the signal.
+@data: The user data associated with the hook.
+@nparams: The number of parameters to the function.
+@args: The actual values of the arguments.
+@arg_types: The types of the arguments.
+@return_type: The type of the return value from the function
+or #GTK_TYPE_NONE for no return value.
 
-<!-- ##### STRUCT GtkIMContextSimple ##### -->
+<!-- ##### STRUCT GtkSignalQuery ##### -->
 <para>
-
+This structure contains all the information about a particular
+signal:  its name, the type it affects, the signature of the handlers,
+and its unique identifying integer.
 </para>
 
-@object: 
-@tables: 
-@compose_buffer: 
-@tentative_match: 
-@tentative_match_len: 
+@object_type: 
+@signal_id: 
+@signal_name: 
+@is_user_signal: 
+@signal_flags: 
+@return_val: 
+@nparams: 
+@params: 
 
-<!-- ##### MACRO GTK_TYPE_FLAT_FIRST ##### -->
+<!-- ##### STRUCT GtkStatusbarMsg ##### -->
 <para>
-The first "flat" (no struct) enumerated type value.
+Holds the data for a statusbar message. <structfield>text</structfield> holds the actual text string. <structfield>context_id</structfield> is the context that this message is associated with, and <structfield>message_id</structfield> is this particular message's identifier. However, these fields should not be modified directly.
 </para>
 
+@text: 
+@context_id: 
+@message_id: 
 
-<!-- ##### FUNCTION gtk_widget_getv ##### -->
+<!-- ##### STRUCT GtkTextBTree ##### -->
 <para>
 
 </para>
 
-@widget: 
-@nargs: 
-@args: 
 
-<!-- ##### FUNCTION gtk_tree_model_sort_resort ##### -->
+<!-- ##### SIGNAL GtkTextBuffer::delete-text ##### -->
 <para>
 
 </para>
 
-@tree_model_sort: 
+@textbuffer: the object which received the signal.
+@arg1: 
+@arg2: 
+@arg3: 
 
-<!-- ##### FUNCTION gtk_tree_view_column_get_col_type ##### -->
+<!-- ##### STRUCT GtkTextTabArray ##### -->
 <para>
 
 </para>
 
-@tree_column: 
-@Returns: 
 
-<!-- ##### FUNCTION gtk_menu_factory_new ##### -->
+<!-- ##### ARG GtkTextTag:font-set ##### -->
 <para>
 
 </para>
 
-@type: 
-@Returns: 
 
-<!-- ##### FUNCTION gtk_object_constructed ##### -->
-<para>
-Mark an allocated object as constructed.
-This is used for situations
-that require precise control of the construction process.
-</para>
-<para>
-This is done when gtk_object_default_construct() is inadequate.
-In #GtkCList the need arises because #GtkCList does construction work that
-must happen <emphasis>after</emphasis> its derivers.  This work
-cannot be done in an initializer function, so an alternate
-constructor is mandatory.  It calls gtk_object_constructed() to
-indicate it has done its job, so that no other constructor will
-be invoked.
-</para>
+<!-- ##### ARG GtkTextTag:justify ##### -->
 <para>
-Normally this function is just automatically run from
-gtk_object_default_construct().
+A #GtkJustification for the text. This is only used when the tag is
+applied to the first character in a paragraph.
 </para>
 
-@object: object which has been constructed.  This is usually
-done automatically by gtk_object_new() and gtk_object_newv().
 
-<!-- ##### FUNCTION gtk_object_default_construct ##### -->
-<para>
-This function is called to construct arguments that haven't been initialized
-but have the #GTK_ARG_CONSTRUCT flag set.
-</para>
+<!-- ##### ARG GtkTextTag:justify-set ##### -->
 <para>
-All number arguments are set to 0.  All pointers and strings
-are set to NULL.
+
 </para>
+
+
+<!-- ##### ARG GtkTextTag:left-wrapped-line-margin ##### -->
 <para>
-Normally invoked by gtk_object_new() automatically; gtk_type_new() can
-be used to bypass it.
+Pixel width of the left margin of the text for lines after the first
+line in a wrapped paragraph.
 </para>
 
-@object: the object to initialize.
 
-<!-- ##### MACRO gtk_marshal_NONE__UINT_POINTER_UINT_UINT_ENUM ##### -->
+<!-- ##### ARG GtkTextTag:left-wrapped-line-margin-set ##### -->
 <para>
 
 </para>
 
 
-<!-- ##### STRUCT GtkLabelWord ##### -->
-<para>\r
-Internal to #GtkLabel.\r
+<!-- ##### ARG GtkTextTag:offset ##### -->
+<para>
+Pixels to offset the text horizontally or vertically, useful to
+produce superscript and subscript.
 </para>
 
 
-<!-- ##### FUNCTION gtk_text_buffer_spew ##### -->
+<!-- ##### ARG GtkTextTag:offset-set ##### -->
 <para>
 
 </para>
 
-@buffer: 
 
-<!-- ##### ARG GtkTextTag:font-set ##### -->
+<!-- ##### ARG GtkTextTag:overstrike ##### -->
 <para>
 
 </para>
 
 
-<!-- ##### FUNCTION gtk_object_arg_get_info ##### -->
+<!-- ##### ARG GtkTextTag:overstrike-set ##### -->
 <para>
-Query information about an argument type.
+
 </para>
 
-@object_type: type of object to query about.
-@arg_name: name of the argument.
-@info_p: pointer to be filled in with a pointer to the GtkArgInfo.
-@Returns: an error message, or NULL on success.
-It is the caller's responsibility to call g_free() in the event of error.
 
-<!-- ##### ENUM GtkTreeSelectionType ##### -->
+<!-- ##### SIGNAL GtkTextView::copy-text ##### -->
 <para>
 
 </para>
 
-@GTK_TREE_SELECTION_SINGLE: 
-@GTK_TREE_SELECTION_MULTI: 
+@textview: the object which received the signal.
 
-<!-- ##### ARG GtkObject:signal-after ##### -->
+<!-- ##### SIGNAL GtkTextView::cut-text ##### -->
 <para>
-Setting this with a GtkType of GTK_TYPE_SIGNAL connects
-the signal to the object, so that the signal is always run
-after other user handlers and the default handler.
+
 </para>
 
+@textview: the object which received the signal.
 
-<!-- ##### STRUCT GtkTextTabArray ##### -->
+<!-- ##### SIGNAL GtkTextView::delete ##### -->
 <para>
 
 </para>
 
+@textview: the object which received the signal.
+@arg1: 
+@arg2: 
 
-<!-- ##### ARG GtkTextTag:overstrike ##### -->
+<!-- ##### SIGNAL GtkTextView::delete-at-cursor ##### -->
 <para>
 
 </para>
 
+@textview: the object which received the signal.
+@arg1: 
+@arg2: 
 
-<!-- ##### MACRO GTK_TREE_SELECTION ##### -->
+<!-- ##### SIGNAL GtkTextView::delete-text ##### -->
 <para>
-A macro that returns a GList that contains the selection of the root tree of @obj.
-</para>
 
-@obj: A pointer to the #GtkTree. @obj will accept any pointer, but it the pointer does not point to a #GtkTree, the results are undefined.
-
-<!-- ##### FUNCTION gtk_editable_changed ##### -->
-<para>
-Causes the "changed" signal to be emitted.
 </para>
 
-@editable: a #GtkEditable widget.
+@textview: the object which received the signal.
+@arg1: 
+@arg2: 
 
-<!-- ##### FUNCTION gtk_object_setv ##### -->
+<!-- ##### SIGNAL GtkTextView::insert ##### -->
 <para>
-Set an array of arguments.
+
 </para>
 
-@object: the object whose arguments should be set.
-@n_args: the number of arguments to set.
-@args: the desired values, as an array of #GtkArgs (which contain 
-the names, types, and values of the arguments).
+@textview: the object which received the signal.
+@arg1: 
 
 <!-- ##### SIGNAL GtkTextView::move ##### -->
 <para>
@@ -2055,214 +2529,1802 @@ the names, types, and values of the arguments).
 @arg2: 
 @arg3: 
 
-<!-- ##### MACRO GTK_WIDGET_HAS_SHAPE_MASK ##### -->
+<!-- ##### SIGNAL GtkTextView::move-insert ##### -->
 <para>
 
 </para>
 
-@obj: 
+@textview: the object which received the signal.
+@arg1: 
+@arg2: 
+@arg3: 
 
-<!-- ##### FUNCTION gtk_text_buffer_copy ##### -->
+<!-- ##### SIGNAL GtkTextView::paste-text ##### -->
 <para>
 
 </para>
 
-@buffer: 
-@time: 
+@textview: the object which received the signal.
 
-<!-- ##### FUNCTION gtk_text_mark_ref ##### -->
+<!-- ##### SIGNAL GtkTextView::scroll-text ##### -->
 <para>
 
 </para>
 
-@mark: 
-@Returns
+@textview: the object which received the signal.
+@arg1
 
-<!-- ##### ARG GtkTextTag:offset ##### -->
+<!-- ##### ENUM GtkTextViewDeleteType ##### -->
 <para>
-Pixels to offset the text horizontally or vertically, useful to
-produce superscript and subscript.
+
 </para>
 
+@GTK_TEXT_DELETE_CHAR: 
+@GTK_TEXT_DELETE_HALF_WORD: 
+@GTK_TEXT_DELETE_WHOLE_WORD: 
+@GTK_TEXT_DELETE_HALF_WRAPPED_LINE: 
+@GTK_TEXT_DELETE_WHOLE_WRAPPED_LINE: 
+@GTK_TEXT_DELETE_HALF_LINE: 
+@GTK_TEXT_DELETE_WHOLE_LINE: 
+@GTK_TEXT_DELETE_WHITESPACE: 
+@GTK_TEXT_DELETE_WHITESPACE_LEAVE_ONE: 
 
-<!-- ##### SIGNAL GtkEditable::insert-text ##### -->
+<!-- ##### ENUM GtkTextViewMovementStep ##### -->
 <para>
-This signal is emitted when text is inserted into
-the widget by the user. The default handler for
-this signal will normally be responsible for inserting
-the text, so by connecting to this signal and then
-stopping the signal with gtk_signal_emit_stop(), it
-is possible to modify the inserted text, or prevent
-it from being inserted entirely.
+
 </para>
 
-@editable: the object which received the signal.
-@new_text: the new text to insert.
-@new_text_length: the length of the new text.
-@position: the position at which to insert the new text.
-           this is an in-out paramter. After the signal
-           emission is finished, it should point after   
-           the newly inserted text.
+@GTK_TEXT_MOVEMENT_CHAR: 
+@GTK_TEXT_MOVEMENT_POSITIONS: 
+@GTK_TEXT_MOVEMENT_WORD: 
+@GTK_TEXT_MOVEMENT_WRAPPED_LINE: 
+@GTK_TEXT_MOVEMENT_LINE: 
+@GTK_TEXT_MOVEMENT_LINE_ENDS: 
+@GTK_TEXT_MOVEMENT_BUFFER_ENDS: 
 
-<!-- ##### FUNCTION gtk_editable_claim_selection ##### -->
+<!-- ##### ENUM GtkTextViewScrollType ##### -->
 <para>
-Claim or disclaim ownership of the PRIMARY X selection.
+
 </para>
 
-@editable: a #GtkEditable widget.
-@claim: if %TRUE, claim the selection, otherwise, disclaim it.
-@time: the timestamp for claiming the selection.
+@GTK_TEXT_SCROLL_TO_TOP: 
+@GTK_TEXT_SCROLL_TO_BOTTOM: 
+@GTK_TEXT_SCROLL_PAGE_DOWN: 
+@GTK_TEXT_SCROLL_PAGE_UP: 
 
-<!-- ##### FUNCTION gtk_marshal_NONE__POINTER_INT ##### -->
+<!-- ##### STRUCT GtkThemeEngine ##### -->
 <para>
 
 </para>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
 
-<!-- ##### MACRO GTK_OBJECT_SIGNALS ##### -->
+<!-- ##### ENUM GtkTreeSelectionType ##### -->
 <para>
-Get the array of signals defined for this object.
+
 </para>
 
-@obj: the object to fetch the signals from.
+@GTK_TREE_SELECTION_SINGLE: 
+@GTK_TREE_SELECTION_MULTI: 
 
-<!-- ##### FUNCTION gtk_object_query_args ##### -->
+<!-- ##### ENUM GtkTreeViewColumnType ##### -->
 <para>
-Get all the arguments that may be used for a given type.
+
 </para>
+
+@GTK_TREE_VIEW_COLUMN_RESIZEABLE: 
+@GTK_TREE_VIEW_COLUMN_AUTOSIZE: 
+@GTK_TREE_VIEW_COLUMN_FIXED: 
+
+<!-- ##### STRUCT GtkTreeViewPrivate ##### -->
 <para>
-In Java, this type of mechanism is called 
-<wordasword>introspection</wordasword>.  It is used by applications
-like Glade, that have to determine what can be done to an object
-at run-time.
+
 </para>
 
-@class_type: the GtkType of the ObjectClass
-(returned from GTK_OBJECT_CLASS(class)-&gt;type for example).
-@arg_flags: if non-NULL, obtains the #GtkArgFlags that apply to
-each argument.  You must g_free() this if you request it.
-@n_args: the number of arguments is returned in this field.
-@Returns: an array of arguments, that you must deallocate with g_free().
+@model: 
+@flags: 
+@tree: 
+@tab_offset: 
+@button_pressed_node: 
+@button_pressed_tree: 
+@children: 
+@width: 
+@height: 
+@hadjustment: 
+@vadjustment: 
+@bin_window: 
+@header_window: 
+@anchor: 
+@cursor: 
+@cursor_drag: 
+@xor_gc: 
+@drag_pos: 
+@x_drag: 
+@prelight_node: 
+@prelight_tree: 
+@prelight_offset: 
+@selection: 
+@columns: 
+@column: 
+@header_height: 
 
-<!-- ##### SIGNAL GtkEditable::move-to-column ##### -->
+<!-- ##### STRUCT GtkTypeQuery ##### -->
 <para>
-An action signal. Move the cursor to the given column.
+A structure used to return values from @gtk_type_query.
 </para>
 
-@editable: the object which received the signal.
-@column: the column to move to. (A negative value indicates
-         the last column)
+@type: 
+@type_name: 
+@object_size: 
+@class_size: 
 
-<!-- ##### SECTION ./tmpl/gtkenums.sgml.sgml:Title ##### -->
-gtkenums.sgml
+<!-- ##### ARG GtkVScale:adjustment ##### -->
+<para>
+the #GtkAdjustment which sets the range of the scale.
+</para>
 
 
-<!-- ##### FUNCTION gtk_marshal_NONE__INT_INT_POINTER ##### -->
+<!-- ##### ARG GtkVScrollbar:adjustment ##### -->
 <para>
 
 </para>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
 
-<!-- ##### USER_FUNCTION GtkMenuCallback ##### -->
+<!-- ##### SIGNAL GtkViewport::set-scroll-adjustments ##### -->
 <para>
 
 </para>
 
-@widget: 
-@user_data: 
+@viewport: the object which received the signal.
+@arg1: 
+@arg2: 
 
-<!-- ##### FUNCTION gtk_type_check_object_cast ##### -->
+<!-- ##### ARG GtkViewport:hadjustment ##### -->
 <para>
-Given a pointer to a GtkTypeObject @type_object, and a GtkType @cast_type,
-make sure that it's okay to cast @type_object into a @cast_type.
+
 </para>
 
-@type_object: GtkTypeObject*
-@cast_type: GtkType
-@Returns: the same GtkTypeObject* as @type_object
 
-<!-- ##### FUNCTION gtk_tree_model_sort_set_sort_col ##### -->
+<!-- ##### ARG GtkViewport:shadow-type ##### -->
 <para>
 
 </para>
 
-@tree_model_sort: 
-@sort_col: 
 
-<!-- ##### FUNCTION gtk_themes_exit ##### -->
+<!-- ##### ARG GtkViewport:vadjustment ##### -->
 <para>
 
 </para>
 
-@error_code: 
 
-<!-- ##### FUNCTION gtk_marshal_BOOL__POINTER_POINTER_POINTER_POINTER ##### -->
+<!-- ##### SIGNAL GtkWidget::add-accelerator ##### -->
 <para>
 
 </para>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
+@widget: the object which received the signal.
+@accel_signal_id: 
+@accel_group: 
+@accel_key: 
+@accel_mods: 
+@accel_flags: 
 
-<!-- ##### MACRO gtk_marshal_NONE__OBJECT ##### -->
+<!-- ##### SIGNAL GtkWidget::button-press-event ##### -->
 <para>
 
 </para>
 
+@widget: the object which received the signal.
+@event: 
+@Returns: 
 
-<!-- ##### SECTION ./tmpl/gtkmenufactory.sgml:Long_Description ##### -->
+<!-- ##### SIGNAL GtkWidget::button-release-event ##### -->
 <para>
 
 </para>
 
+@widget: the object which received the signal.
+@event: 
+@Returns: 
 
-<!-- ##### FUNCTION gtk_type_set_varargs_type ##### -->
+<!-- ##### SIGNAL GtkWidget::client-event ##### -->
 <para>
-Set the varargs type for a fundamental type @foreign_type.
+
 </para>
 
-@foreign_type: Must be a GtkType with a sequence number of zero.  Must not be a
-fundamental type.
-@varargs_type: Must be a GtkType which is either structured or flag, or NONE.
+@widget: the object which received the signal.
+@event: 
+@Returns: 
 
-<!-- ##### FUNCTION gtk_type_check_class_cast ##### -->
+<!-- ##### SIGNAL GtkWidget::configure-event ##### -->
 <para>
-Given a GtkTypeClass pointer @klass, and a GtkType @cast_type, make
-sure that it's okay to cast something of that @klass into a @cast_type.
+
 </para>
 
-@klass: GtkTypeClass*
-@cast_type: GtkType
-@Returns: Always return @klass.
+@widget: the object which received the signal.
+@event: 
+@Returns: 
 
-<!-- ##### ARG GtkObject:object-signal-after ##### -->
-<para>
-Setting this with a GtkType of GTK_TYPE_SIGNAL connects
-the signal to the object, so that the user data and objects
-and swapped when the signal handler is invoked,
-and so that the handler is invoked after all others.
-</para>
+<!-- ##### SIGNAL GtkWidget::debug-msg ##### -->
 <para>
-See gtk_signal_connect_object_after() for more details.
+
 </para>
 
+@widget: the object which received the signal.
+@message: 
 
-<!-- ##### FUNCTION gtk_menu_factory_destroy ##### -->
+<!-- ##### SIGNAL GtkWidget::delete-event ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@event: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWidget::destroy-event ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@event: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWidget::direction-changed ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@arg1: 
+
+<!-- ##### SIGNAL GtkWidget::drag-begin ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@drag_context: 
+
+<!-- ##### SIGNAL GtkWidget::drag-data-delete ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@drag_context: 
+
+<!-- ##### SIGNAL GtkWidget::drag-data-get ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@drag_context: 
+@data: 
+@info: 
+@time: 
+
+<!-- ##### SIGNAL GtkWidget::drag-data-received ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@drag_context: 
+@x: 
+@y: 
+@data: 
+@info: 
+@time: 
+
+<!-- ##### SIGNAL GtkWidget::drag-drop ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@drag_context: 
+@x: 
+@y: 
+@time: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWidget::drag-end ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@drag_context: 
+
+<!-- ##### SIGNAL GtkWidget::drag-leave ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@drag_context: 
+@time: 
+
+<!-- ##### SIGNAL GtkWidget::drag-motion ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@drag_context: 
+@x: 
+@y: 
+@time: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWidget::draw ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@area: 
+
+<!-- ##### SIGNAL GtkWidget::draw-default ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+
+<!-- ##### SIGNAL GtkWidget::draw-focus ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+
+<!-- ##### SIGNAL GtkWidget::enter-notify-event ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@event: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWidget::event ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@event: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWidget::expose-event ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@event: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWidget::focus-in-event ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@event: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWidget::focus-out-event ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@event: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWidget::grab-focus ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+
+<!-- ##### SIGNAL GtkWidget::hide ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+
+<!-- ##### SIGNAL GtkWidget::key-press-event ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@event: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWidget::key-release-event ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@event: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWidget::leave-notify-event ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@event: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWidget::map ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+
+<!-- ##### SIGNAL GtkWidget::map-event ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@event: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWidget::motion-notify-event ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@event: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWidget::no-expose-event ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@event: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWidget::parent-set ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@old_parent: 
+
+<!-- ##### SIGNAL GtkWidget::property-notify-event ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@event: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWidget::proximity-in-event ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@event: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWidget::proximity-out-event ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@event: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWidget::realize ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+
+<!-- ##### SIGNAL GtkWidget::remove-accelerator ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@accel_group: 
+@accel_key: 
+@accel_mods: 
+
+<!-- ##### SIGNAL GtkWidget::scroll-event ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@event: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWidget::selection-clear-event ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@event: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWidget::selection-get ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@data: 
+@info: 
+@time: 
+
+<!-- ##### SIGNAL GtkWidget::selection-notify-event ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@event: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWidget::selection-received ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@data: 
+@time: 
+
+<!-- ##### SIGNAL GtkWidget::selection-request-event ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@event: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWidget::show ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+
+<!-- ##### SIGNAL GtkWidget::size-allocate ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@allocation: 
+
+<!-- ##### SIGNAL GtkWidget::size-request ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@requisition: 
+
+<!-- ##### SIGNAL GtkWidget::state-changed ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@state: 
+
+<!-- ##### SIGNAL GtkWidget::style-set ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@previous_style: 
+
+<!-- ##### SIGNAL GtkWidget::unmap ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+
+<!-- ##### SIGNAL GtkWidget::unmap-event ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@event: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWidget::unrealize ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+
+<!-- ##### SIGNAL GtkWidget::visibility-notify-event ##### -->
+<para>
+
+</para>
+
+@widget: the object which received the signal.
+@event: 
+@Returns: 
+
+<!-- ##### ARG GtkWidget:app-paintable ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG GtkWidget:can-default ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG GtkWidget:can-focus ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG GtkWidget:composite-child ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG GtkWidget:events ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG GtkWidget:extension-events ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG GtkWidget:has-default ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG GtkWidget:has-focus ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG GtkWidget:height ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG GtkWidget:name ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG GtkWidget:parent ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG GtkWidget:receives-default ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG GtkWidget:sensitive ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG GtkWidget:style ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG GtkWidget:visible ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG GtkWidget:width ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG GtkWidget:x ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG GtkWidget:y ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SIGNAL GtkWindow::frame-event ##### -->
+<para>
+
+</para>
+
+@window: the object which received the signal.
+@event: 
+@Returns: 
+
+<!-- ##### SIGNAL GtkWindow::set-focus ##### -->
+<para>
+
+</para>
+
+@window: the object which received the signal.
+@widget: 
+
+<!-- ##### ARG GtkWindow:allow-grow ##### -->
+<para>
+If the window can be resized to a larger size by the user.
+</para>
+
+
+<!-- ##### ARG GtkWindow:allow-shrink ##### -->
+<para>
+If the window can be resized to a smaller size by the user.
+</para>
+
+
+<!-- ##### ARG GtkWindow:auto-shrink ##### -->
+<para>
+If the window shrinks automatically when widgets within it shrink.
+</para>
+
+
+<!-- ##### ARG GtkWindow:default-height ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG GtkWindow:default-width ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG GtkWindow:destroy-with-parent ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG GtkWindow:modal ##### -->
+<para>
+If the window is modal, i.e. it grabs all GTK+ events.
+</para>
+
+
+<!-- ##### ARG GtkWindow:title ##### -->
+<para>
+The title of the window.
+</para>
+
+
+<!-- ##### ARG GtkWindow:type ##### -->
+<para>
+The type of the window.
+</para>
+
+
+<!-- ##### ARG GtkWindow:window-position ##### -->
+<para>
+The position of the window.
+</para>
+
+
+<!-- ##### FUNCTION gtk_accel_group_marshal_add ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_accel_group_marshal_remove ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_clist_construct ##### -->
+<para>
+Initializes a previously allocated #GtkCList widget for use.  This should not
+normally be used to create a #GtkCList widget.  Use gtk_clist_new() instead.
+</para>
+
+@clist: A pointer to an uninitialized #GtkCList widget.
+@columns: The number of columns the #GtkCList should have.
+@titles: An array of strings that should be used as the titles i
+of the columns.  There should be enough strings in the array for
+the number of columns specified.
+
+<!-- ##### FUNCTION gtk_color_selection_set_opacity ##### -->
+<para>
+Controls whether opacity can be set with the #GtkColorSelection.
+If this functionality is enabled, the necessary additional widgets
+are added to the #GtkColorSelection and the opacity value can be
+retrieved via the fourth value in the color array returned by
+the gtk_color_selection_get_color() function.
+</para>
+
+@colorsel: a #GtkColorSelection.
+@use_opacity: a boolean indicating whether the opacity selection
+is enabled.
+
+<!-- ##### FUNCTION gtk_container_get_toplevels ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### FUNCTION gtk_container_register_toplevel ##### -->
+<para>
+
+</para>
+
+@container: 
+
+<!-- ##### FUNCTION gtk_container_unregister_toplevel ##### -->
+<para>
+
+</para>
+
+@container: 
+
+<!-- ##### FUNCTION gtk_ctree_construct ##### -->
+<para>
+This function is not usually used by users.
+</para>
+
+@ctree: 
+@columns: 
+@tree_column: 
+@titles: 
+
+<!-- ##### VARIABLE gtk_debug_flags ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gtk_draw_cross ##### -->
+<para>
+
+</para>
+
+@style: 
+@window: 
+@state_type: 
+@shadow_type: 
+@x: 
+@y: 
+@width: 
+@height: 
+
+<!-- ##### FUNCTION gtk_draw_oval ##### -->
+<para>
+
+</para>
+
+@style: 
+@window: 
+@state_type: 
+@shadow_type: 
+@x: 
+@y: 
+@width: 
+@height: 
+
+<!-- ##### FUNCTION gtk_draw_ramp ##### -->
+<para>
+
+</para>
+
+@style: 
+@window: 
+@state_type: 
+@shadow_type: 
+@arrow_type: 
+@x: 
+@y: 
+@width: 
+@height: 
+
+<!-- ##### FUNCTION gtk_editable_changed ##### -->
+<para>
+Causes the "changed" signal to be emitted.
+</para>
+
+@editable: a #GtkEditable widget.
+
+<!-- ##### FUNCTION gtk_editable_claim_selection ##### -->
+<para>
+Claim or disclaim ownership of the PRIMARY X selection.
+</para>
+
+@editable: a #GtkEditable widget.
+@claim: if %TRUE, claim the selection, otherwise, disclaim it.
+@time: the timestamp for claiming the selection.
+
+<!-- ##### FUNCTION gtk_font_selection_dialog_set_filter ##### -->
+<para>
+Sets one of the two font filters, to limit the fonts shown.
+</para>
+
+@fsd: a #GtkFontSelectionDialog.
+@filter_type: which of the two font filters to set, either
+#GTK_FONT_FILTER_BASE or #GTK_FONT_FILTER_USER. The user filter
+can be changed by the user, but the base filter is permanent.
+@font_type: the types of font to be shown. This is a bitwise combination of
+#GTK_FONT_BITMAP, #GTK_FONT_SCALABLE and #GTK_FONT_SCALABLE_BITMAP,
+or #GTK_FONT_ALL to show all three font types.
+@foundries: a NULL-terminated array of strings containing foundry names which
+will be shown, or NULL to show all foundries.
+@weights: a NULL-terminated array of strings containing weight names which
+will be shown, or NULL to show all weights.
+@slants: a NULL-terminated array of strings containing slant names which
+will be shown, or NULL to show all slants.
+@setwidths: a NULL-terminated array of strings containing setwidth names which
+will be shown, or NULL to show all setwidths.
+@spacings: a NULL-terminated array of strings containing spacings which
+will be shown, or NULL to show all spacings.
+@charsets: a NULL-terminated array of strings containing charset names which
+will be shown, or NULL to show all charsets.
+
+<!-- ##### FUNCTION gtk_font_selection_set_filter ##### -->
+<para>
+Sets one of the two font filters, to limit the fonts shown.
+</para>
+
+@fontsel: a #GtkFontSelection.
+@filter_type: which of the two font filters to set, either
+#GTK_FONT_FILTER_BASE or #GTK_FONT_FILTER_USER. The user filter
+can be changed by the user, but the base filter is permanent.
+@font_type: the types of font to be shown. This is a bitwise combination of
+#GTK_FONT_BITMAP, #GTK_FONT_SCALABLE and #GTK_FONT_SCALABLE_BITMAP,
+or #GTK_FONT_ALL to show all three font types.
+@foundries: a NULL-terminated array of strings containing foundry names which
+will be shown, or NULL to show all foundries.
+@weights: a NULL-terminated array of strings containing weight names which
+will be shown, or NULL to show all weights.
+@slants: a NULL-terminated array of strings containing slant names which
+will be shown, or NULL to show all slants.
+@setwidths: a NULL-terminated array of strings containing setwidth names which
+will be shown, or NULL to show all setwidths.
+@spacings: a NULL-terminated array of strings containing spacings which
+will be shown, or NULL to show all spacings.
+@charsets: a NULL-terminated array of strings containing charset names which
+will be shown, or NULL to show all charsets.
+
+<!-- ##### FUNCTION gtk_icon_factory_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### FUNCTION gtk_identifier_get_type ##### -->
+<para>
+Get the type of GtkIdentifier.
+</para>
+
+@Returns: GtkType -- the enumerated type of something.
+
+<!-- ##### FUNCTION gtk_im_context_simple_add_table ##### -->
+<para>
+
+</para>
+
+@context_simple: 
+@data: 
+@max_seq_len: 
+@n_seqs: 
+
+<!-- ##### FUNCTION gtk_im_context_simple_new ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### FUNCTION gtk_marshal_BOOL__NONE ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_marshal_BOOL__POINTER ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_marshal_BOOL__POINTER_INT_INT ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_marshal_BOOL__POINTER_INT_INT_INT ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### MACRO gtk_marshal_BOOL__POINTER_INT_INT_UINT ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gtk_marshal_BOOL__POINTER_POINTER_INT_INT ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_marshal_BOOL__POINTER_POINTER_POINTER_POINTER ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### MACRO gtk_marshal_BOOL__POINTER_STRING_STRING_POINTER ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO gtk_marshal_ENUM__ENUM ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gtk_marshal_INT__INT ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_marshal_INT__POINTER ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_marshal_INT__POINTER_CHAR_CHAR ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_marshal_NONE__BOOL ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### MACRO gtk_marshal_NONE__BOXED ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gtk_marshal_NONE__C_CALLBACK ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_marshal_NONE__C_CALLBACK_C_CALLBACK ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### MACRO gtk_marshal_NONE__ENUM ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO gtk_marshal_NONE__ENUM_FLOAT ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO gtk_marshal_NONE__ENUM_FLOAT_BOOL ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gtk_marshal_NONE__INT ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_marshal_NONE__INT_FLOAT ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_marshal_NONE__INT_FLOAT_BOOL ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_marshal_NONE__INT_INT ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_marshal_NONE__INT_INT_POINTER ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_marshal_NONE__INT_POINTER ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_marshal_NONE__INT_POINTER_INT_INT_INT ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_marshal_NONE__INT_POINTER_INT_INT_INT_POINTER ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_marshal_NONE__NONE ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### MACRO gtk_marshal_NONE__OBJECT ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gtk_marshal_NONE__POINTER ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_marshal_NONE__POINTER_INT ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_marshal_NONE__POINTER_INT_INT ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_marshal_NONE__POINTER_INT_INT_POINTER_INT_INT ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### MACRO gtk_marshal_NONE__POINTER_INT_INT_POINTER_UINT_UINT ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gtk_marshal_NONE__POINTER_INT_POINTER ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_marshal_NONE__POINTER_POINTER ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_marshal_NONE__POINTER_POINTER_INT_INT ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### FUNCTION gtk_marshal_NONE__POINTER_POINTER_POINTER ##### -->
+<para>
+
+</para>
+
+@object: 
+@func: 
+@func_data: 
+@args: 
+
+<!-- ##### MACRO gtk_marshal_NONE__POINTER_POINTER_UINT_UINT ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO gtk_marshal_NONE__POINTER_STRING_STRING ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO gtk_marshal_NONE__POINTER_UINT ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO gtk_marshal_NONE__POINTER_UINT_ENUM ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO gtk_marshal_NONE__POINTER_UINT_UINT ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO gtk_marshal_NONE__STRING ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO gtk_marshal_NONE__STRING_INT_POINTER ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO gtk_marshal_NONE__UINT ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO gtk_marshal_NONE__UINT_POINTER_UINT_ENUM_ENUM_POINTER ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO gtk_marshal_NONE__UINT_POINTER_UINT_UINT_ENUM ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO gtk_marshal_NONE__UINT_STRING ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gtk_menu_factory_add_entries ##### -->
+<para>
+
+</para>
+
+@factory: 
+@entries: 
+@nentries: 
+
+<!-- ##### FUNCTION gtk_menu_factory_add_subfactory ##### -->
+<para>
+
+</para>
+
+@factory: 
+@subfactory: 
+@path: 
+
+<!-- ##### FUNCTION gtk_menu_factory_destroy ##### -->
+<para>
+
+</para>
+
+@factory: 
+
+<!-- ##### FUNCTION gtk_menu_factory_find ##### -->
+<para>
+
+</para>
+
+@factory: 
+@path: 
+@Returns: 
+
+<!-- ##### FUNCTION gtk_menu_factory_new ##### -->
+<para>
+
+</para>
+
+@type: 
+@Returns: 
+
+<!-- ##### FUNCTION gtk_menu_factory_remove_entries ##### -->
+<para>
+
+</para>
+
+@factory: 
+@entries: 
+@nentries: 
+
+<!-- ##### FUNCTION gtk_menu_factory_remove_paths ##### -->
+<para>
+
+</para>
+
+@factory: 
+@paths: 
+@npaths: 
+
+<!-- ##### FUNCTION gtk_menu_factory_remove_subfactory ##### -->
 <para>
 
 </para>
 
 @factory: 
+@subfactory: 
+@path: 
+
+<!-- ##### FUNCTION gtk_model_simple_new ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### FUNCTION gtk_model_simple_node_changed ##### -->
+<para>
+
+</para>
+
+@simple: 
+@path: 
+@iter: 
+
+<!-- ##### FUNCTION gtk_model_simple_node_child_toggled ##### -->
+<para>
+
+</para>
+
+@simple: 
+@path: 
+@iter: 
+
+<!-- ##### FUNCTION gtk_model_simple_node_deleted ##### -->
+<para>
+
+</para>
+
+@simple: 
+@path: 
+@iter: 
+
+<!-- ##### FUNCTION gtk_model_simple_node_inserted ##### -->
+<para>
+
+</para>
+
+@simple: 
+@path: 
+@iter: 
+
+<!-- ##### FUNCTION gtk_object_arg_get ##### -->
+<para>
+Private function to get an argument and argument info from an object.
+</para>
+
+@object: the object whose argument should be retrieved.
+@arg: the argument, for the name on input, the rest is filled on output.
+@info: a #GtkArgInfo structure to optionally fill in.
+
+<!-- ##### FUNCTION gtk_object_arg_get_info ##### -->
+<para>
+Query information about an argument type.
+</para>
+
+@object_type: type of object to query about.
+@arg_name: name of the argument.
+@info_p: pointer to be filled in with a pointer to the GtkArgInfo.
+@Returns: an error message, or NULL on success.
+It is the caller's responsibility to call g_free() in the event of error.
+
+<!-- ##### FUNCTION gtk_object_arg_set ##### -->
+<para>
+Private function to set an argument and argument info to an object.
+</para>
+
+@object: the object whose argument should be set.
+@arg: the argument.
+@info: infomation about this type of argument in general.
+
+<!-- ##### FUNCTION gtk_object_args_collect ##### -->
+<para>
+Private: Gets an array of #GtkArgs from a va_list C structure.
+</para>
+
+@object_type: the type of object to collect arguments for.
+@arg_list_p: pointer to be filled in with a list of parsed arguments.
+@info_list_p: optional pointer for a returned list #GtkArgInfos.
+@first_arg_name: name of first argument.
+@var_args: value of first argument, followed by more key/value pairs,
+terminated by NULL.
+@Returns: an error message, or NULL on success.
+It is the caller's responsibility to call g_free() in the event of error.
+
+<!-- ##### FUNCTION gtk_object_class_add_signals ##### -->
+<para>
+Add an array of signals to a #GtkObjectClass.
+Usually this is called when registering a new type of object.
+</para>
+
+@klass: the object class to append signals to.
+@signals: the signals to append.
+@nsignals: the number of signals being appended.
+
+<!-- ##### FUNCTION gtk_object_class_user_signal_new ##### -->
+<para>
+Define a signal-handler for a new signal on an already defined
+object.
+</para>
+<para>
+See the signal documentation for more general information.
+</para>
+
+@klass: the object class to define the signal for.
+@name: the name of the signal.
+@signal_flags: the default emission behavior for the signal.
+See gtk_signal_new().
+@marshaller: a function that will take an array of GtkArgs
+and invoke the appropriate handler with the normal calling
+conventions.
+@return_val: specify the return-value type for the signal
+(or GTK_TYPE_NONE for no return-value).
+@nparams: specify the number of parameters the signal
+receives from the caller of gtk_signal_emit().
+@Varargs: list of nparams #GtkTypes to pass to the signal handlers.
+@Returns: the signal id.  (See #GtkSignals)
+
+<!-- ##### FUNCTION gtk_object_class_user_signal_newv ##### -->
+<para>
+Define a signal-handler for a new signal on an already defined
+object.
+</para>
+
+@klass: the object class to define the signal for.
+@name: the name of the signal.
+@signal_flags: the default emission behavior for the signal.
+See gtk_signal_new().
+@marshaller: takes a GtkObject, a #GtkSignalFunc, and an array
+of arguments, and invokes the function using the appropriate
+calling conventions.  Usually just select a function
+out of gtkmarshal.h.
+@return_val: specify the return-value type for the signal (possibly
+#GTK_TYPE_NONE).
+@nparams: specify the number of parameters the signal
+receives from the caller of gtk_signal_emit().
+@params: array of #GtkTypes the signal handlers for this signal
+should have in their prototype (of length nparams).
+@Returns: the signal id.  (See #GtkSignals)
+
+<!-- ##### FUNCTION gtk_object_constructed ##### -->
+<para>
+Mark an allocated object as constructed.
+This is used for situations
+that require precise control of the construction process.
+</para>
+<para>
+This is done when gtk_object_default_construct() is inadequate.
+In #GtkCList the need arises because #GtkCList does construction work that
+must happen <emphasis>after</emphasis> its derivers.  This work
+cannot be done in an initializer function, so an alternate
+constructor is mandatory.  It calls gtk_object_constructed() to
+indicate it has done its job, so that no other constructor will
+be invoked.
+</para>
+<para>
+Normally this function is just automatically run from
+gtk_object_default_construct().
+</para>
+
+@object: object which has been constructed.  This is usually
+done automatically by gtk_object_new() and gtk_object_newv().
+
+<!-- ##### FUNCTION gtk_object_default_construct ##### -->
+<para>
+This function is called to construct arguments that haven't been initialized
+but have the #GTK_ARG_CONSTRUCT flag set.
+</para>
+<para>
+All number arguments are set to 0.  All pointers and strings
+are set to NULL.
+</para>
+<para>
+Normally invoked by gtk_object_new() automatically; gtk_type_new() can
+be used to bypass it.
+</para>
+
+@object: the object to initialize.
+
+<!-- ##### FUNCTION gtk_object_getv ##### -->
+<para>
+Gets an array of argument values from an object.
+</para>
+
+@object: the object to get arguments from.
+@n_args: the number of arguments to query.
+@args: the arguments to fill in.
+
+<!-- ##### FUNCTION gtk_object_newv ##### -->
+<para>
+Construct an object with an array of arguments.
+</para>
+
+@object_type: the type of the object to create.
+@n_args: the number of arguments to set.
+@args: an array of n_args arguments (which are name and value pairs).
+@Returns: the new GtkObject.
+
+<!-- ##### FUNCTION gtk_object_query_args ##### -->
+<para>
+Get all the arguments that may be used for a given type.
+</para>
+<para>
+In Java, this type of mechanism is called 
+<wordasword>introspection</wordasword>.  It is used by applications
+like Glade, that have to determine what can be done to an object
+at run-time.
+</para>
+
+@class_type: the GtkType of the ObjectClass
+(returned from GTK_OBJECT_CLASS(class)-&gt;type for example).
+@arg_flags: if non-NULL, obtains the #GtkArgFlags that apply to
+each argument.  You must g_free() this if you request it.
+@n_args: the number of arguments is returned in this field.
+@Returns: an array of arguments, that you must deallocate with g_free().
+
+<!-- ##### FUNCTION gtk_object_setv ##### -->
+<para>
+Set an array of arguments.
+</para>
+
+@object: the object whose arguments should be set.
+@n_args: the number of arguments to set.
+@args: the desired values, as an array of #GtkArgs (which contain 
+the names, types, and values of the arguments).
+
+<!-- ##### FUNCTION gtk_paint_cross ##### -->
+<para>
+
+</para>
+
+@style: 
+@window: 
+@state_type: 
+@shadow_type: 
+@area: 
+@widget: 
+@detail: 
+@x: 
+@y: 
+@width: 
+@height: 
+
+<!-- ##### FUNCTION gtk_paint_oval ##### -->
+<para>
+
+</para>
+
+@style: 
+@window: 
+@state_type: 
+@shadow_type: 
+@area: 
+@widget: 
+@detail: 
+@x: 
+@y: 
+@width: 
+@height: 
 
 <!-- ##### FUNCTION gtk_paint_ramp ##### -->
 <para>
@@ -2282,6 +4344,81 @@ See gtk_signal_connect_object_after() for more details.
 @width: 
 @height: 
 
+<!-- ##### FUNCTION gtk_paned_compute_position ##### -->
+<para>
+Internal function used by #GtkHPaned and #GtkVPaned
+</para>
+
+@paned: 
+@allocation: 
+@child1_req: 
+@child2_req: 
+
+<!-- ##### FUNCTION gtk_rc_init ##### -->
+<para>
+Internal function.
+</para>
+
+
+<!-- ##### FUNCTION gtk_ruler_draw_pos ##### -->
+<para>
+
+</para>
+
+@ruler: the gtkruler
+
+<!-- ##### FUNCTION gtk_ruler_draw_ticks ##### -->
+<para>
+
+</para>
+
+@ruler: the gtkruler
+
+<!-- ##### FUNCTION gtk_signal_add_emission_hook_full ##### -->
+<para>
+Add an emission hook for a type of signal, for any object.
+(with control of what happens when the hook is
+destroyed).
+</para>
+
+@signal_id: the type of signal add the hook for.
+@hook_func: the function to invoke to handle the hook.
+@data: the user data passed in to hook_func.
+@destroy: a function to invoke when the hook is destroyed,
+to clean up any allocation done just for this
+signal handler.
+@Returns: the id (that you may pass as a parameter
+to gtk_signal_remove_emission_hook()).
+
+<!-- ##### FUNCTION gtk_signal_handler_pending_by_id ##### -->
+<para>
+Returns whether a connection id is valid (and optionally not blocked).
+</para>
+
+@object: the object to search for the desired handler.
+@handler_id: the connection id.
+@may_be_blocked: whether it is acceptable to return a blocked
+handler.
+@Returns: TRUE if the signal exists and wasn't blocked,
+unless #may_be_blocked was specified.  FALSE otherwise.
+
+<!-- ##### FUNCTION gtk_signal_handlers_destroy ##### -->
+<para>
+Destroy all the signal handlers connected to an object.
+This is done automatically when the object is destroyed.
+</para>
+<para>
+This function is labeled private.
+</para>
+
+@object: the object whose signal handlers should be destroyed.
+
+<!-- ##### MACRO gtk_signal_init ##### -->
+<para>
+
+</para>
+
+
 <!-- ##### FUNCTION gtk_signal_n_emissions ##### -->
 <para>
 Find out the recursion depth of emissions for a particular type
@@ -2296,206 +4433,316 @@ by one when #gtk_signal_emit(), et al, are called,
 and decreases by one when #gtk_signal_emit() returns.
 </para>
 
-@object: the object with the signal handler.
-@signal_id: the signal id.
-@Returns: the recursion depth of emissions of this signal for this
-object.
+@object: the object with the signal handler.
+@signal_id: the signal id.
+@Returns: the recursion depth of emissions of this signal for this
+object.
+
+<!-- ##### FUNCTION gtk_signal_n_emissions_by_name ##### -->
+<para>
+Find out the recursion depth of emissions for a particular type
+of signal and object.  Just like gtk_signal_n_emissions()
+except it will lookup the signal id for you.
+</para>
+
+@object: the object with the signal handler.
+@name: the signal name.
+@Returns: the recursion depth of emissions of this signal for this
+object.
+
+<!-- ##### FUNCTION gtk_signal_query ##### -->
+<para>
+Obtain information about a signal.
+</para>
+
+@signal_id: the signal type identifier.
+@Returns: a pointer to a GtkSignalQuery structure
+which contains all the information, or NULL.
+The pointer is allocated just for you:  you must g_free() it.
+
+<!-- ##### FUNCTION gtk_signal_set_funcs ##### -->
+<para>
+These set default functions to call when the user didn't
+supply a function when connecting.  (These are rarely
+used, and probably only for language bindings)
+</para>
+<para>
+By default, there are no such functions.
+</para>
+
+@marshal_func: the function to invoke on every handlers for which there
+isn't a function pointer.  May be NULL.
+@destroy_func: the function to invoke when each hook is destroyed.
+May be NULL.
+
+<!-- ##### FUNCTION gtk_text_buffer_copy ##### -->
+<para>
+
+</para>
+
+@buffer: 
+@time: 
+
+<!-- ##### FUNCTION gtk_text_buffer_cut ##### -->
+<para>
+
+</para>
+
+@buffer: 
+@time: 
+@interactive: 
+@default_editable: 
+
+<!-- ##### FUNCTION gtk_text_buffer_find_regexp ##### -->
+<para>
+
+</para>
+
+@buffer: 
+@regexp: 
+@start: 
+@end: 
+@Returns: 
+
+<!-- ##### FUNCTION gtk_text_buffer_find_string ##### -->
+<para>
+
+</para>
+
+@buffer: 
+@iter: 
+@str: 
+@start: 
+@end: 
+@Returns: 
+
+<!-- ##### FUNCTION gtk_text_buffer_get_clipboard_contents ##### -->
+<para>
+
+</para>
+
+@buffer: 
+@Returns: 
+
+<!-- ##### FUNCTION gtk_text_buffer_get_tags ##### -->
+<para>
+
+</para>
+
+@buffer: 
+@iter: 
+@Returns: 
+
+<!-- ##### FUNCTION gtk_text_buffer_insert_pixmap ##### -->
+<para>
+
+</para>
+
+@buffer: 
+@iter: 
+@pixmap: 
+@mask: 
+
+<!-- ##### FUNCTION gtk_text_buffer_paste_primary_selection ##### -->
+<para>
+
+</para>
+
+@buffer: 
+@override_location: 
+@time: 
+@interactive: 
+@default_editable: 
+
+<!-- ##### FUNCTION gtk_text_buffer_set_clipboard_contents ##### -->
+<para>
+
+</para>
+
+@buffer: 
+@text: 
 
-<!-- ##### FUNCTION gtk_text_buffer_insert_pixmap ##### -->
+<!-- ##### FUNCTION gtk_text_buffer_spew ##### -->
 <para>
 
 </para>
 
 @buffer: 
-@iter: 
-@pixmap: 
-@mask: 
 
-<!-- ##### ARG GtkTextTag:justify-set ##### -->
+<!-- ##### FUNCTION gtk_text_iter_forward_to_newline ##### -->
 <para>
 
 </para>
 
+@iter: 
+@Returns: 
 
-<!-- ##### FUNCTION gtk_marshal_NONE__C_CALLBACK_C_CALLBACK ##### -->
+<!-- ##### FUNCTION gtk_text_iter_get_pixmap ##### -->
 <para>
 
 </para>
 
-@object
-@func
-@func_data
-@args: 
+@iter
+@pixmap
+@mask
+@Returns: 
 
-<!-- ##### FUNCTION gtk_marshal_NONE__POINTER_INT_INT_POINTER_INT_INT ##### -->
+<!-- ##### FUNCTION gtk_text_iter_in_region ##### -->
 <para>
 
 </para>
 
-@object
-@func
-@func_data
-@args: 
+@iter
+@start
+@end
+@Returns: 
 
-<!-- ##### MACRO GTK_VALUE_ARGS ##### -->
+<!-- ##### FUNCTION gtk_text_iter_next_char ##### -->
 <para>
-Use to get the value of a GtkArg whose GtkType is GTK_TYPE_ARGS
+
 </para>
 
-@a: 
+@iter: 
+@Returns: 
 
-<!-- ##### FUNCTION gtk_menu_factory_add_entries ##### -->
+<!-- ##### FUNCTION gtk_text_iter_prev_char ##### -->
 <para>
 
 </para>
 
-@factory: 
-@entries: 
-@nentries: 
+@iter: 
+@Returns: 
 
-<!-- ##### SIGNAL GtkEditable::move-to-row ##### -->
+<!-- ##### FUNCTION gtk_text_mark_deleted ##### -->
 <para>
-An action signal. Move the cursor to the given row.
+
 </para>
 
-@editable: the object which received the signal.
-@row: the row to move to. (A negative value indicates 
-      the last row)
+@mark: 
+@Returns: 
 
-<!-- ##### FUNCTION gtk_signal_set_funcs ##### -->
+<!-- ##### FUNCTION gtk_text_mark_is_visible ##### -->
 <para>
-These set default functions to call when the user didn't
-supply a function when connecting.  (These are rarely
-used, and probably only for language bindings)
+
 </para>
+
+@mark: 
+@Returns: 
+
+<!-- ##### FUNCTION gtk_text_mark_ref ##### -->
 <para>
-By default, there are no such functions.
+
 </para>
 
-@marshal_func: the function to invoke on every handlers for which there
-isn't a function pointer.  May be NULL.
-@destroy_func: the function to invoke when each hook is destroyed.
-May be NULL.
+@mark: 
+@Returns: 
 
-<!-- ##### FUNCTION gtk_im_context_simple_new ##### -->
+<!-- ##### FUNCTION gtk_text_mark_unref ##### -->
 <para>
 
 </para>
 
-@Returns
+@mark
 
-<!-- ##### FUNCTION gtk_paint_cross ##### -->
+<!-- ##### FUNCTION gtk_text_view_get_iter_at_pixel ##### -->
 <para>
 
 </para>
 
-@style: 
-@window: 
-@state_type: 
-@shadow_type: 
-@area: 
-@widget: 
-@detail: 
+@text_view: 
+@iter: 
 @x: 
 @y: 
-@width: 
-@height: 
 
-<!-- ##### ARG GtkObject:signal ##### -->
+<!-- ##### FUNCTION gtk_theme_engine_create_rc_style ##### -->
 <para>
-Setting this with a GtkType of GTK_TYPE_SIGNAL connects
-the signal to the object.
+
 </para>
 
+@engine: 
+@Returns: 
 
-<!-- ##### FUNCTION gtk_type_describe_heritage ##### -->
+<!-- ##### FUNCTION gtk_theme_engine_get ##### -->
 <para>
-Print the types @type inherits from.
+
 </para>
 
-@type: GtkType
+@name: 
+@Returns: 
 
-<!-- ##### FUNCTION gtk_text_buffer_set_clipboard_contents ##### -->
+<!-- ##### FUNCTION gtk_theme_engine_ref ##### -->
 <para>
 
 </para>
 
-@buffer: 
-@text: 
+@engine: 
 
-<!-- ##### ENUM GtkFontFilterType ##### -->
+<!-- ##### FUNCTION gtk_theme_engine_register_type ##### -->
 <para>
-A set of bit flags used to specify the filter being set
-when calling gtk_font_selection_dialog_set_filter() or
-gtk_font_selection_set_filter().
+
 </para>
 
-@GTK_FONT_FILTER_BASE: the base filter, which can't be changed by the user.
-@GTK_FONT_FILTER_USER: the user filter, which can be changed from within the
-'Filter' page of the #GtkFontSelection widget.
+@engine: 
+@parent_type: 
+@type_name: 
+@type_info: 
+@Returns: 
 
-<!-- ##### SIGNAL GtkEditable::move-cursor ##### -->
+<!-- ##### FUNCTION gtk_theme_engine_unref ##### -->
 <para>
-An action signal. Move the cursor position.
+
 </para>
 
-@editable: the object which received the signal.
-@x: horizontal distance to move the cursor.
-@y: vertical distance to move the cursor.
+@engine: 
 
-<!-- ##### FUNCTION gtk_type_parent_class ##### -->
+<!-- ##### FUNCTION gtk_themes_exit ##### -->
 <para>
-Return the class of the parent.  Initialize the class if necessary.
-Return NULL if anything goes wrong.
+
 </para>
 
-@type: GtkType
-@Returns: gpointer to the klass.
+@error_code: 
 
-<!-- ##### USER_FUNCTION GtkSignalDestroy ##### -->
+<!-- ##### FUNCTION gtk_themes_init ##### -->
 <para>
-A function which you can use to clean up when the
-signal handler is destroyed.
+
 </para>
+
+@argc: 
+@argv: 
+
+<!-- ##### FUNCTION gtk_trace_referencing ##### -->
 <para>
-For example, if your handler requires a few variables
-that you made into a struct and allocated (using g_new()
-or something), then you will probably want to free
-it as soon as the hook is destroyed.  This will
-allow you to do that. (For this in particular
-it is convenient to pass g_free() as a #GtkSignalDestroy
-function).
+Private: print debugging information while doing a gtk_object_ref() or 
+a gtk_object_unref().
 </para>
 
-@data: The user data associated with the hook that is being
-destroyed.
+@object: object to reference or unreference.
+@func: name of caller's function to print (used within macros).
+@dummy: unused.
+@line: line number (used within macros).
+@do_ref: whether to reference or unreference.
 
-<!-- ##### FUNCTION gtk_window_set_default ##### -->
+<!-- ##### FUNCTION gtk_tree_model_sort_resort ##### -->
 <para>
 
 </para>
 
-@window: 
-@defaultw: 
+@tree_model_sort: 
 
-<!-- ##### FUNCTION gtk_tree_store_setv ##### -->
+<!-- ##### FUNCTION gtk_tree_model_sort_set_sort_col ##### -->
 <para>
 
 </para>
 
-@tree_store: 
-@iter: 
-@var_args: 
+@tree_model_sort: 
+@sort_col: 
 
-<!-- ##### SIGNAL GtkTextBuffer::delete-text ##### -->
+<!-- ##### FUNCTION gtk_tree_selection_new ##### -->
 <para>
 
 </para>
 
-@textbuffer: the object which received the signal.
-@arg1: 
-@arg2: 
-@arg3: 
+@Returns: 
 
 <!-- ##### FUNCTION gtk_tree_selection_new_with_tree_view ##### -->
 <para>
@@ -2505,74 +4752,88 @@ destroyed.
 @tree_view: 
 @Returns: 
 
-<!-- ##### FUNCTION gtk_marshal_NONE__INT ##### -->
+<!-- ##### FUNCTION gtk_tree_selection_set_tree_view ##### -->
 <para>
 
 </para>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
+@selection: 
+@tree_view: 
 
-<!-- ##### ARG GtkObject:object-signal ##### -->
+<!-- ##### FUNCTION gtk_tree_selection_set_type ##### -->
 <para>
-Setting this with a GtkType of GTK_TYPE_SIGNAL connects
-the signal to the object, so that the user data and objects
-and swapped when the signal handler is invoked.
+
 </para>
+
+@selection: 
+@type: 
+
+<!-- ##### FUNCTION gtk_tree_store_get_root_iter ##### -->
 <para>
-This is useful for handlers that are primarily notifying
-other objects and could just invoke an already existing function
-if the parameters were swapped.
-See gtk_signal_connect_object() for more details.
+
 </para>
 
+@tree_store: 
+@iter: 
 
-<!-- ##### FUNCTION gtk_draw_ramp ##### -->
+<!-- ##### FUNCTION gtk_tree_store_getv ##### -->
 <para>
 
 </para>
 
-@style: 
-@window: 
-@state_type: 
-@shadow_type: 
-@arrow_type: 
-@x: 
-@y: 
-@width: 
-@height: 
+@tree_store: 
+@iter: 
+@var_args: 
 
-<!-- ##### MACRO GTK_WIDGET_LEAVE_PENDING ##### -->
+<!-- ##### FUNCTION gtk_tree_store_new_with_values ##### -->
 <para>
 
 </para>
 
-@obj: 
+@n_columns: 
+@Varargs: 
+@Returns: 
+
+<!-- ##### FUNCTION gtk_tree_store_setv ##### -->
+<para>
+
+</para>
+
+@tree_store: 
+@iter: 
+@var_args: 
+
+<!-- ##### FUNCTION gtk_tree_view_column_get_col_type ##### -->
+<para>
+
+</para>
+
+@tree_column: 
+@Returns: 
 
-<!-- ##### MACRO gtk_marshal_NONE__UINT ##### -->
+<!-- ##### FUNCTION gtk_tree_view_column_get_justification ##### -->
 <para>
 
 </para>
 
+@tree_column: 
+@Returns: 
 
-<!-- ##### MACRO GTK_WIDGET_IN_REPARENT ##### -->
+<!-- ##### FUNCTION gtk_tree_view_column_get_size ##### -->
 <para>
 
 </para>
 
-@obj: 
+@tree_column: 
+@Returns: 
 
-<!-- ##### FUNCTION gtk_accel_group_marshal_add ##### -->
+<!-- ##### FUNCTION gtk_tree_view_column_get_title ##### -->
 <para>
 
 </para>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
+@tree_column: 
+@Returns: 
 
 <!-- ##### FUNCTION gtk_tree_view_column_set_col_type ##### -->
 <para>
@@ -2582,230 +4843,281 @@ See gtk_signal_connect_object() for more details.
 @tree_column: 
 @type: 
 
-<!-- ##### ARG GtkTextTag:overstrike-set ##### -->
+<!-- ##### FUNCTION gtk_tree_view_column_set_header_active ##### -->
 <para>
 
 </para>
 
+@tree_column: 
+@active: 
 
-<!-- ##### FUNCTION gtk_marshal_INT__POINTER_CHAR_CHAR ##### -->
+<!-- ##### FUNCTION gtk_tree_view_column_set_header_clickable ##### -->
 <para>
 
 </para>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
+@tree_column: 
+@active: 
 
-<!-- ##### FUNCTION gtk_marshal_NONE__POINTER_INT_INT ##### -->
+<!-- ##### FUNCTION gtk_tree_view_column_set_justification ##### -->
 <para>
 
 </para>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
+@tree_column: 
+@justification: 
 
-<!-- ##### FUNCTION gtk_accel_group_marshal_remove ##### -->
+<!-- ##### FUNCTION gtk_tree_view_column_set_size ##### -->
 <para>
 
 </para>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
+@tree_column: 
+@size: 
+@width: 
 
-<!-- ##### SIGNAL GtkWidget::draw ##### -->
+<!-- ##### FUNCTION gtk_tree_view_move_to ##### -->
 <para>
 
 </para>
 
-@widget: the object which received the signal.
-@area: 
+@tree_view: 
+@path: 
+@column: 
+@row_align: 
+@col_align: 
 
-<!-- ##### MACRO gtk_marshal_NONE__STRING_INT_POINTER ##### -->
+<!-- ##### FUNCTION gtk_tree_view_set_headers_active ##### -->
 <para>
 
 </para>
 
+@tree_view: 
+@active: 
 
-<!-- ##### FUNCTION gtk_marshal_NONE__INT_POINTER ##### -->
+<!-- ##### FUNCTION gtk_type_check_class_cast ##### -->
 <para>
-
+Given a GtkTypeClass pointer @klass, and a GtkType @cast_type, make
+sure that it's okay to cast something of that @klass into a @cast_type.
 </para>
 
-@object: 
-@func: 
-@func_data: 
-@args: 
+@klass: GtkTypeClass*
+@cast_type: GtkType
+@Returns: Always return @klass.
 
-<!-- ##### FUNCTION gtk_rc_init ##### -->
+<!-- ##### FUNCTION gtk_type_check_object_cast ##### -->
 <para>
-Internal function.
+Given a pointer to a GtkTypeObject @type_object, and a GtkType @cast_type,
+make sure that it's okay to cast @type_object into a @cast_type.
 </para>
 
+@type_object: GtkTypeObject*
+@cast_type: GtkType
+@Returns: the same GtkTypeObject* as @type_object
 
-<!-- ##### FUNCTION gtk_signal_query ##### -->
+<!-- ##### FUNCTION gtk_type_children_types ##### -->
 <para>
-Obtain information about a signal.
+Return the pointer to the type's children's types.
 </para>
 
-@signal_id: the signal type identifier.
-@Returns: a pointer to a GtkSignalQuery structure
-which contains all the information, or NULL.
-The pointer is allocated just for you:  you must g_free() it.
+@type: GtkType
+@Returns: pointer to a GList
 
-<!-- ##### FUNCTION gtk_signal_n_emissions_by_name ##### -->
+<!-- ##### FUNCTION gtk_type_describe_heritage ##### -->
 <para>
-Find out the recursion depth of emissions for a particular type
-of signal and object.  Just like gtk_signal_n_emissions()
-except it will lookup the signal id for you.
+Print the types @type inherits from.
 </para>
 
-@object: the object with the signal handler.
-@name: the signal name.
-@Returns: the recursion depth of emissions of this signal for this
-object.
+@type: GtkType
 
-<!-- ##### SECTION ./tmpl/gtkenums.sgml.sgml:See_Also ##### -->
+<!-- ##### FUNCTION gtk_type_describe_tree ##### -->
 <para>
-
+Given a @type, describe all of its children, and their children.  Only
+show the size if @show_size is true.
 </para>
 
+@type: GtkType
+@show_size: gboolean
 
-<!-- ##### SIGNAL GtkTextView::delete ##### -->
+<!-- ##### FUNCTION gtk_type_free ##### -->
 <para>
-
+Given the type of an object and a pointer to it, the object is freed.
 </para>
 
-@textview: the object which received the signal.
-@arg1: 
-@arg2: 
+@type: GtkType
+@mem: gpointer to the object
 
-<!-- ##### MACRO gtk_marshal_ENUM__ENUM ##### -->
+<!-- ##### FUNCTION gtk_type_get_varargs_type ##### -->
 <para>
+Get the varargs type associated with @foreign_type
+</para>
 
+@foreign_type: GtkType
+@Returns: GtkType
+
+<!-- ##### FUNCTION gtk_type_parent_class ##### -->
+<para>
+Return the class of the parent.  Initialize the class if necessary.
+Return NULL if anything goes wrong.
 </para>
 
+@type: GtkType
+@Returns: gpointer to the klass.
 
-<!-- ##### MACRO gtk_widget_push_visual ##### -->
+<!-- ##### FUNCTION gtk_type_query ##### -->
 <para>
+Given a type, return various interesting parameters of the type.
+</para>
+
+@type: GtkType
+@Returns: GtkTypeQuery*
 
+<!-- ##### FUNCTION gtk_type_register_enum ##### -->
+<para>
+Register a new set of enum @values and give them the name in
+@type_name.
 </para>
 
-@v: 
-@visual: 
+@type_name: must not be null.
+@values: GtkEnumValue*
+@Returns: 
 
-<!-- ##### FUNCTION gtk_container_register_toplevel ##### -->
+<!-- ##### FUNCTION gtk_type_register_flags ##### -->
 <para>
+Register a new set of flags @values and give them the name in
+@type_name.
+</para>
+
+@type_name: must not be null.
+@values: GtkFlagValue*
+@Returns: 
 
+<!-- ##### FUNCTION gtk_type_set_chunk_alloc ##### -->
+<para>
+Set the mem_chunk size so it will hold @n_chunks of the objects of that @type.
 </para>
 
-@container: 
+@type: There must be an unlocked TypeNode associated with this type otherwise nothing happens.
+@n_chunks: 
 
-<!-- ##### SECTION ./tmpl/gtkimcontextsimple.sgml:Title ##### -->
-GtkIMContextSimple
+<!-- ##### FUNCTION gtk_type_set_varargs_type ##### -->
+<para>
+Set the varargs type for a fundamental type @foreign_type.
+</para>
 
+@foreign_type: Must be a GtkType with a sequence number of zero.  Must not be a
+fundamental type.
+@varargs_type: Must be a GtkType which is either structured or flag, or NONE.
 
-<!-- ##### MACRO gtk_marshal_NONE__POINTER_INT_INT_POINTER_UINT_UINT ##### -->
+<!-- ##### FUNCTION gtk_widget_get ##### -->
 <para>
 
 </para>
 
+@widget: 
+@arg: 
 
-<!-- ##### MACRO GTK_VALUE_C_CALLBACK ##### -->
+<!-- ##### FUNCTION gtk_widget_getv ##### -->
 <para>
-Use to get the value of a GtkArg whose GtkType is GTK_TYPE_C_CALLBACK
+
 </para>
 
-@a: 
+@widget: 
+@nargs: 
+@args: 
 
-<!-- ##### FUNCTION gtk_marshal_BOOL__POINTER_POINTER_INT_INT ##### -->
+<!-- ##### FUNCTION gtk_widget_newv ##### -->
 <para>
 
 </para>
 
-@object: 
-@func: 
-@func_data: 
+@type: 
+@nargs: 
 @args: 
+@Returns: 
 
-<!-- ##### SIGNAL GtkTextView::move-insert ##### -->
+<!-- ##### MACRO gtk_widget_pop_visual ##### -->
 <para>
 
 </para>
 
-@textview: the object which received the signal.
-@arg1: 
-@arg2: 
-@arg3: 
+@v: 
 
-<!-- ##### SECTION ./tmpl/gtkimcontextsimple.sgml:Long_Description ##### -->
+<!-- ##### MACRO gtk_widget_push_visual ##### -->
 <para>
 
 </para>
 
+@v: 
+@visual: 
 
-<!-- ##### FUNCTION gtk_tree_view_set_headers_active ##### -->
+<!-- ##### FUNCTION gtk_widget_render_stock_icon ##### -->
 <para>
 
 </para>
 
-@tree_view: 
-@active: 
+@widget: 
+@stock_id: 
+@size: 
+@detail: 
+@Returns: 
 
-<!-- ##### FUNCTION gtk_text_buffer_find_regexp ##### -->
+<!-- ##### MACRO gtk_widget_set_default_visual ##### -->
 <para>
 
 </para>
 
-@buffer: 
-@regexp: 
-@start: 
-@end: 
-@Returns: 
+@v: 
+@visual: 
 
-<!-- ##### FUNCTION gtk_menu_factory_add_subfactory ##### -->
+<!-- ##### MACRO gtk_widget_set_visual ##### -->
 <para>
 
 </para>
 
-@factory: 
-@subfactory: 
-@path: 
+@w: 
+@v: 
+@widget: 
+@visual: 
 
-<!-- ##### ENUM GtkTextViewScrollType ##### -->
+<!-- ##### FUNCTION gtk_widget_setv ##### -->
 <para>
 
 </para>
 
-@GTK_TEXT_SCROLL_TO_TOP: 
-@GTK_TEXT_SCROLL_TO_BOTTOM: 
-@GTK_TEXT_SCROLL_PAGE_DOWN: 
-@GTK_TEXT_SCROLL_PAGE_UP: 
+@widget: 
+@nargs: 
+@args: 
 
-<!-- ##### FUNCTION gtk_text_iter_next_char ##### -->
+<!-- ##### FUNCTION gtk_window_add_embedded_xid ##### -->
 <para>
 
 </para>
 
-@iter
-@Returns
+@window
+@xid
 
-<!-- ##### FUNCTION gtk_tree_store_get_root_iter ##### -->
+<!-- ##### FUNCTION gtk_window_remove_embedded_xid ##### -->
 <para>
 
 </para>
 
-@tree_store
-@iter
+@window
+@xid
 
-<!-- ##### STRUCT GtkTextBTree ##### -->
+<!-- ##### FUNCTION gtk_window_set_default ##### -->
+<para>
+
+</para>
+
+@window: 
+@defaultw: 
+
+<!-- ##### FUNCTION gtk_window_set_focus ##### -->
 <para>
 
 </para>
 
+@window: 
+@focus: 
 
index 11ebd19021e13c1dbe9968aae26f2839bc9b40ee..15a4ee127d2fa4dd7df1e9b4ba0648f73123d23f 100644 (file)
@@ -30,8 +30,10 @@ GtkTreeViewColumn
 @tree_view: 
 @button: 
 @child: 
+@arrow: 
+@alignment: 
 @window: 
-@justification: 
+@xalign: 
 @id: 
 @width: 
 @min_width: 
@@ -42,9 +44,11 @@ GtkTreeViewColumn
 @cell: 
 @attributes: 
 @column_type: 
+@sort_order: 
 @visible: 
 @button_active: 
 @dirty: 
+@show_sort_indicator: 
 
 <!-- ##### ENUM GtkTreeViewColumnSizing ##### -->
 <para>
@@ -223,15 +227,6 @@ GtkTreeViewColumn
 @title: 
 
 
-<!-- ##### FUNCTION gtk_tree_view_column_get_title ##### -->
-<para>
-
-</para>
-
-@tree_column: 
-@Returns: 
-
-
 <!-- ##### FUNCTION gtk_tree_view_column_set_clickable ##### -->
 <para>
 
@@ -259,24 +254,6 @@ GtkTreeViewColumn
 @Returns: 
 
 
-<!-- ##### FUNCTION gtk_tree_view_column_set_justification ##### -->
-<para>
-
-</para>
-
-@tree_column: 
-@justification: 
-
-
-<!-- ##### FUNCTION gtk_tree_view_column_get_justification ##### -->
-<para>
-
-</para>
-
-@tree_column: 
-@Returns: 
-
-
 <!-- ##### FUNCTION gtk_tree_view_column_clicked ##### -->
 <para>